:root{--paper:#0b0f16;--surface:#111722;--surface-2:#151d2a;--surface-3:#1a2432;--ink:#e8eef7;--muted:#8f9bad;--line:#273244;--lime:#5ea8ff;--blue:#5ea8ff;--blue-2:#8bc5ff;--heading:'Syne',system-ui,sans-serif;--body:'IBM Plex Sans',Arial,sans-serif;--mono:'IBM Plex Mono',monospace;--header:88px;--footer:60px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.35}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #467522;outline-offset:6px}img{display:block;max-width:100%}button{background:none;border:0}::selection{background:var(--lime);color:var(--ink)}.skip-link{position:fixed;top:-100px;left:20px;background:var(--lime);z-index:101;padding:16px}.skip-link:focus{top:10px}.site-header{height:var(--header);display:flex;align-items:center;gap:24px;padding:0 4vw;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.wordmark{font-family:var(--heading);font-size:44px;font-weight:700;letter-spacing:-4px;line-height:1}.wordmark span{font-size:12px;vertical-align:top;letter-spacing:0;display:inline-block;margin:5px 0 0 5px}.identity{font-size:12px;font-weight:650;letter-spacing:.045em;line-height:1.8}.identity span{display:block;color:var(--muted);font-size:10px;letter-spacing:.09em}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:42px;font-size:14px;font-weight:550}.site-header nav a{position:relative}.site-header nav a:not(.contact-link):after{content:'';position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--ink);transition:width .25s}.site-header nav a:hover:after{width:100%}.site-header nav a>span{font-size:10px;vertical-align:super;margin-left:4px;color:var(--muted)}.contact-link{border:1px solid var(--ink);border-radius:24px;padding:11px 23px;transition:background .2s}.contact-link:hover{background:var(--lime)}.menu-button{display:none}.panel{position:relative;padding:42px 5vw 70px;min-height:780px;border-bottom:1px solid var(--line);overflow:hidden;scroll-margin-top:var(--header)}.eyebrow{font-size:12px;letter-spacing:.13em;line-height:1.65;font-weight:550;margin:0 0 24px}.cross{font-size:23px;line-height:10px;vertical-align:-2px;margin-right:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--heading);font-weight:500}h1{font-size:clamp(64px,6.6vw,112px);line-height:1.02;letter-spacing:-.067em;margin-bottom:34px}h2{font-size:clamp(42px,4.3vw,72px);line-height:1.04;letter-spacing:-.055em;margin-bottom:0}em{font-style:normal;color:#71796e}h3{font-size:24px;letter-spacing:-.045em;margin-bottom:7px}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:1vw}.hero-text{z-index:2}.hero-text .eyebrow{font-size:11px;letter-spacing:.06em}.hero-bottom p{color:var(--muted);line-height:1.65;font-size:16px;margin-bottom:25px}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;background:var(--ink);color:#fff;border-radius:4px;padding:18px 22px;font-size:14px;font-weight:500;transition:transform .2s,background .2s}.primary-button:hover{transform:translateY(-3px);background:#353e2a}.button-dot{height:8px;width:8px;border-radius:50%;background:var(--lime)}.hero-stage{position:relative;isolation:isolate;aspect-ratio:.95;max-height:560px;background:#e5e9e0;border:1px solid #d5dbcf;background-image:radial-gradient(#b7bfaf 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.stage-top,.stage-bottom{display:flex;justify-content:space-between;position:absolute;left:20px;right:20px;font:10px var(--heading);letter-spacing:.05em;z-index:3}.stage-top{top:19px}.stage-bottom{bottom:19px;font-size:9px}.orbit{position:absolute;border:1px solid #b7c3a9;border-radius:50%;width:90%;height:75%;top:14%;left:10%;transform:rotate(-28deg)}.orbit-two{width:110%;height:50%;top:25%;left:-8%;transform:rotate(31deg)}.stage-coordinate{font:10px var(--heading);position:absolute}.coord-one{left:18px;top:44%}.coord-two{right:15px;bottom:20%;writing-mode:vertical-rl}.hero-browser{position:absolute;width:81%;height:57%;left:5%;top:17%;border:5px solid #fff;border-top-width:0;border-radius:8px;background:#fff;padding:0;box-shadow:0 25px 45px #32432b26;transform:perspective(1400px) rotateY(8deg) rotate(-6deg);overflow:hidden;transition:transform .4s}.hero-browser:hover{transform:rotate(-3deg) translateY(-8px)}.browser-toolbar{display:flex;gap:4px;height:24px;align-items:center;padding:0 8px;background:#fff}.browser-toolbar i{width:4px;height:4px;background:#c1c6bf;border-radius:50%}.browser-toolbar>span{margin-left:10px;font-size:7px;color:#72766e}.hero-browser>img{width:100%;height:calc(100% - 24px);object-fit:cover;object-position:top}.hero-phone{position:absolute;width:25%;height:54%;right:8%;bottom:12%;padding:4px;background:#181c1a;border-radius:20px;box-shadow:0 20px 25px #28332330;transform:rotate(7deg);overflow:hidden;transition:transform .4s}.hero-phone img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:16px}.hero-phone:hover{transform:rotate(3deg) translateY(-8px)}.stage-tag{position:absolute;bottom:22%;left:7%;font-size:11px;letter-spacing:-.02em;background:var(--lime);padding:12px 14px;transform:rotate(-6deg)}.cursor-tag{position:absolute;right:7%;top:21%;background:var(--lime);padding:7px 12px;font-size:10px;transform:rotate(5deg);border:1px solid #181c1a}.cursor-tag svg{width:22px;position:absolute;top:-24px;left:-16px;color:var(--lime)}.panel-note{position:absolute;bottom:22px;left:5vw;right:5vw;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.08em;font-weight:500;color:var(--muted)}.panel-note a{text-decoration:underline;text-underline-offset:5px;font-size:12px;letter-spacing:0}.scroll-hint{display:flex;align-items:center;gap:12px}.scroll-line{width:44px;height:1px;background:var(--muted);position:relative}.scroll-line:after{content:'';position:absolute;width:4px;height:4px;border:1px solid var(--muted);border-width:1px 1px 0 0;right:0;top:-2px;transform:rotate(45deg)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;gap:20px}.section-heading .eyebrow{margin-bottom:16px}.section-heading>p{font-size:15px;line-height:1.65;color:var(--muted);margin-bottom:2px}.featured-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:30px}.project-card{min-width:0}.project-hit{width:100%;text-align:left;padding:0;display:block}.project-image{position:relative;overflow:hidden;background:var(--project-bg,#ddd);height:300px;border:1px solid #181c1a0a}.project-image>img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.project-hit:hover .project-image>img{transform:scale(1.035)}.project-hover{position:absolute;right:14px;bottom:14px;padding:11px 18px;border-radius:30px;background:var(--lime);font-size:12px;opacity:0;transform:translateY(8px);transition:.2s}.project-hit:hover .project-hover,.project-hit:focus-visible .project-hover{opacity:1;transform:none}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.project-meta h3{margin:0}.project-meta>span{font-size:11px;color:var(--muted)}.selected{background:#e4e8df}.selected .project-image{padding:22px 22px 0}.selected .project-image>img{object-position:top;border-radius:5px 5px 0 0;box-shadow:0 8px 30px #0001}.selected .project-meta h3{font-size:25px}.ui-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px}.ui-feature{background:#deebe1;border:1px solid #c5d5c9;padding:24px 28px}.ui-feature-button{padding:0;text-align:left;width:100%;height:100%}.phone-row{display:flex;justify-content:center;align-items:center;gap:18px;height:290px;overflow:hidden;padding:5px 0 12px}.phone-row img{height:95%;width:auto;max-width:29%;object-fit:cover;object-position:top;aspect-ratio:.46;border:4px solid #fff;border-radius:17px;box-shadow:0 10px 18px #24372522;transition:transform .3s}.phone-row img:nth-child(2){height:100%;transform:translateY(-3px)}.ui-feature-button:hover .phone-row img:nth-child(2){transform:translateY(-9px)}.project-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:22px}.project-caption h3{font-size:23px}.project-caption p{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:0}.pill{font-size:10px;border:1px solid #859b88;border-radius:20px;padding:7px 12px;white-space:nowrap}.ux-process{background:#e1e6e3;border:1px solid #cbd3cd;padding:23px 24px}.ux-process-head{display:flex;justify-content:space-between;margin-bottom:16px}.tiny-label{font-size:10px;letter-spacing:.1em;font-weight:500}.process-image{padding:0;width:100%;height:260px;overflow:hidden;background:#fff}.process-image img{height:100%;width:100%;object-fit:contain}.text-button{font-size:12px;border-bottom:1px solid var(--ink);padding:4px 0;white-space:nowrap}.web-projects{background:#19211e;color:var(--paper)}.web-projects em{color:var(--lime)}.web-projects .eyebrow,.web-projects .section-heading>p,.web-projects .project-meta>span,.web-projects .panel-note{color:#aebbaa}.web-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.web-grid .project-image{height:320px;padding:16px 16px 0}.web-grid .project-image img{object-fit:cover;object-position:top;box-shadow:0 10px 25px #0002}.web-grid .project-meta{display:block}.web-grid h3{font-size:23px;margin-bottom:8px}.web-grid .project-hover{color:var(--ink)}.archive .section-heading{margin-bottom:24px}.archive-controls{display:flex;gap:7px;align-items:center;margin-bottom:20px}.filter{padding:8px 15px;border:1px solid #ccd1c6;border-radius:20px;font-size:12px;transition:.2s}.filter:hover{border-color:var(--ink)}.filter.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}#archive-count{margin-left:auto;font-size:12px;color:var(--muted)}.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.archive-grid .project-image{height:235px;padding:14px}.archive-grid .project-image img{object-fit:contain}.archive-grid .project-meta{display:block}.archive-grid .project-meta h3{font-size:21px;margin-bottom:6px}.archive-grid .project-meta>span{font-size:12px}.archive-footer{display:flex;align-items:center;justify-content:space-between;margin-top:27px}.archive-page{font-size:12px;color:var(--muted)}.page-control{font-size:12px;padding:9px 14px;border:1px solid #bfc5b8;border-radius:20px;margin-left:8px}.page-control:not(:disabled):hover{background:var(--lime)}.approach{background:#e2e7db;display:grid;grid-template-columns:1.2fr 1fr;gap:9vw;align-items:center}.approach h2{font-size:clamp(44px,4.7vw,78px);margin-bottom:30px}.approach h2 em{color:#6c785d}.approach-intro{max-width:510px;font-size:15px;line-height:1.7;color:#4e5748}.discipline-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:23px}.discipline-tags span{font-size:11px;border:1px solid #bbc4b0;padding:8px 11px;border-radius:20px}.approach-statement{border-bottom:1px solid #bbc4b0;padding-bottom:10px}.approach-statement p{font-family:var(--heading);font-size:27px;line-height:1.25;letter-spacing:-.035em;margin:16px 0}.process-step{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid #bbc4b0}.process-step>span{font:12px var(--heading);color:#647157;padding-top:3px}.process-step h3{font-size:20px;margin-bottom:6px}.process-step p{font-size:13px;line-height:1.6;color:#5e6855;margin:0}.toolbox{padding-top:23px}.toolbox p{font-size:13px;line-height:1.8;margin:10px 0 0}.contact{background:var(--lime);display:flex;flex-direction:column;justify-content:center}.contact>.eyebrow{position:absolute;top:42px}.contact-main{max-width:900px;z-index:2}.contact-main>p{font-size:16px;line-height:1.6;color:#44532c;margin-bottom:25px}.contact h2{font-size:clamp(64px,7.5vw,128px);letter-spacing:-.065em;line-height:.99;margin-bottom:35px}.contact h2 em{color:#657d39}.contact-seal{position:absolute;right:6%;top:20%;height:160px;width:160px;border:1px solid #8fb34b;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(14deg)}.contact-seal>span{font-size:9px;letter-spacing:.13em;text-align:center;line-height:1.3}.contact-seal b{font-family:var(--heading);font-size:56px;letter-spacing:-.08em;line-height:1.2}.contact-footer{position:absolute;left:5vw;right:5vw;bottom:28px;border-top:1px solid #abd05c;padding-top:22px;display:flex;align-items:flex-start;justify-content:space-between;font-size:12px}.contact-name{font-weight:600;font-size:15px}.contact-footer p{font-size:11px;margin:6px 0 0;color:#587131}.journey-bar{display:none}.horizontal .scroll-space{position:relative}.horizontal .viewport{position:sticky;top:var(--header);height:calc(100svh - var(--header) - var(--footer));overflow:hidden}.horizontal .track{display:flex;height:100%;width:max-content;will-change:transform}.horizontal .panel{flex:0 0 100vw;width:100vw;height:100%;min-height:0;padding-top:34px;padding-bottom:55px;border-bottom:0;border-right:1px solid var(--line)}.horizontal .hero-stage{height:calc(100svh - 252px);width:100%;max-height:570px;aspect-ratio:auto}.horizontal .section-heading{height:calc((100svh - 180px)*.29);margin-bottom:25px;min-height:120px;align-items:flex-end}.horizontal .featured-grid{height:calc((100svh - 180px)*.60)}.horizontal .big-card .project-hit{height:100%}.horizontal .big-card .project-image{height:calc(100% - 50px)}.horizontal .ui-grid{height:calc((100svh - 180px)*.60)}.horizontal .ui-feature,.horizontal .ux-process{min-height:0}.horizontal .phone-row{height:calc(100% - 80px)}.horizontal .process-image{height:calc(100% - 110px)}.horizontal .web-grid{height:calc((100svh - 180px)*.6)}.horizontal .compact-card .project-hit{height:100%}.horizontal .compact-card .project-image{height:calc(100% - 80px)}.horizontal .archive-grid .project-image{height:clamp(145px,26vh,310px)}.horizontal .archive .section-heading{height:calc((100svh - 180px)*.27)}.horizontal .journey-bar{position:fixed;bottom:0;left:0;right:0;height:var(--footer);display:flex;align-items:center;gap:35px;padding:0 4vw;border-top:1px solid var(--line);background:var(--paper);z-index:39}.chapter{font-size:12px;display:flex;align-items:center;gap:10px;min-width:210px}.chapter-divider{color:#8b9383}.chapter #chapter-name{margin-left:18px;font-size:11px}.journey-progress{height:2px;background:#d2d8c9;flex:1;position:relative;overflow:hidden}#progress-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#20291b}.journey-buttons{display:flex;gap:7px}.journey-buttons button{height:32px;width:32px;border:1px solid #bdc6b2;border-radius:50%;padding:7px;display:grid;place-items:center}.journey-buttons button:hover:not(:disabled){background:var(--lime)}.journey-buttons svg{width:16px;fill:none;stroke:currentColor;stroke-width:1.5}.horizontal body{overscroll-behavior:none}.no-transition{scroll-behavior:auto!important}
/* Detailed project pages live in a keyboard-accessible native dialog. */
dialog{position:fixed;inset:0;width:min(1100px,94vw);max-width:none;height:90svh;max-height:90svh;margin:auto;border:1px solid #b9c0b1;padding:0;background:var(--paper);color:var(--ink);border-radius:8px;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 30px 90px #0005}dialog::backdrop{background:#101a17b8;backdrop-filter:blur(8px)}.dialog-top{position:sticky;top:0;z-index:2;background:var(--paper);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:17px 30px}.close-dialog{padding:5px 0;font-size:13px;display:flex;gap:14px;align-items:center}.close-dialog span{font-size:25px;line-height:1}.detail-header{padding:46px 50px 30px;display:grid;grid-template-columns:1fr .9fr;gap:36px;align-items:end}.detail-header h2{font-size:48px;margin:14px 0 20px}.detail-header .detail-headline{font-size:18px;line-height:1.5;max-width:420px}.detail-description{color:var(--muted);font-size:15px;line-height:1.75}.detail-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.detail-tags span{font-size:11px;padding:7px 10px;border:1px solid #bec7b4;border-radius:15px}.detail-link{display:inline-flex;font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:4px;margin-top:15px}.detail-gallery{padding:0 50px 50px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.detail-gallery.mobile-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-gallery figure{margin:0;background:#dfe4d9;padding:12px;border:1px solid #cbd3c2}.detail-gallery img{width:100%;height:auto}.detail-gallery figcaption{font-size:11px;color:var(--muted);padding:12px 2px 2px}.detail-gallery figure:only-child{grid-column:1/-1}.detail-footer{padding:20px 50px 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px}.detail-footer button{font-size:13px;border-bottom:1px solid var(--ink);padding:6px 0}.noscript-note{padding:20px;background:var(--lime)}
@media(min-width:1000px) and (max-height:760px){:root{--header:72px;--footer:50px}.horizontal .panel{padding-top:25px}.hero h1{font-size:6vw;margin-bottom:24px}.hero-bottom p{font-size:14px;margin-bottom:18px}.hero-text .eyebrow{margin-bottom:18px}.primary-button{padding:15px 18px}.section-heading h2{font-size:3.7vw}.horizontal .section-heading{min-height:105px}.horizontal .ui-feature,.horizontal .ux-process{padding:16px 22px}.project-caption{padding-top:13px}.approach h2{font-size:4vw;margin-bottom:18px}.approach .eyebrow{margin-bottom:17px}.approach-intro{font-size:13px}.approach-statement p{font-size:23px}.process-step{padding:13px 0}.toolbox{padding-top:14px}.discipline-tags{margin-top:14px}.contact h2{font-size:7vw}.contact-seal{height:130px;width:130px}.contact-main>p{margin-bottom:18px}.archive-footer{margin-top:18px}}
@media(min-width:1650px){.hero-text .eyebrow{font-size:13px}.hero-bottom p{font-size:18px}.section-heading>p{font-size:18px}.project-caption p{font-size:16px}.project-meta>span{font-size:13px}.tiny-label,.panel-note{font-size:12px}.approach-intro{font-size:18px}.process-step p,.toolbox p{font-size:16px}}
@media(max-width:999px){:root{--header:76px}.site-header{padding:0 5vw;gap:18px}.identity{font-size:10px}.identity span{font-size:9px}.site-header nav{gap:22px}.panel{min-height:0;padding:60px 6vw 80px}.hero{grid-template-columns:1fr;gap:40px}.hero h1{font-size:clamp(58px,10vw,90px)}.hero-stage{height:580px;max-height:none;width:100%;aspect-ratio:auto}.hero-text .eyebrow{font-size:11px}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}.hero-bottom p{margin-bottom:0}.panel-note{left:6vw;right:6vw;bottom:24px;font-size:9px}.hero .panel-note .scroll-hint{display:none}.section-heading{margin-bottom:30px}.section-heading h2{font-size:50px}.featured-grid{gap:22px}.project-image{height:265px}.project-meta{align-items:start;flex-direction:column;gap:6px}.ui-grid{gap:20px;grid-template-columns:1fr}.phone-row{height:390px}.phone-row img{max-width:28%}.process-image{height:340px}.ui-feature{padding:28px}.ux-process{padding:28px}.web-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px}.web-grid .project-image{height:300px}.archive-grid{grid-template-columns:repeat(2,1fr);gap:27px}.archive-grid .project-image{height:240px}.approach{grid-template-columns:1fr;gap:40px}.approach h2{font-size:64px}.approach-intro{max-width:100%}.approach-details{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}.approach-statement{grid-row:span 2}.toolbox{padding-top:0}.contact{min-height:730px}.contact h2{font-size:70px}.contact-seal{right:7%;top:90px;width:120px;height:120px}.contact-seal b{font-size:38px}.contact-footer{left:6vw;right:6vw;gap:20px;flex-wrap:wrap}.contact-footer>span{display:none}}
@media(max-width:600px){:root{--header:70px}.site-header{gap:16px}.wordmark{font-size:37px}.identity{font-size:9px;letter-spacing:0}.identity span{font-size:8px}.menu-button{display:block;margin-left:auto;font-size:13px;padding:10px 0}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;margin:0;padding:24px 6vw;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:24px}.site-header nav.open{display:flex}.panel{padding:42px 6vw 68px}.eyebrow{font-size:10px;letter-spacing:.085em}.hero{gap:32px}.hero-text .eyebrow{font-size:9px;letter-spacing:.025em;margin-bottom:22px}.hero h1{font-size:clamp(51px,11.8vw,70px);letter-spacing:-.065em;margin-bottom:24px}.hero-bottom{display:block}.hero-bottom p{font-size:14px;margin-bottom:23px}.hero-stage{height:390px}.stage-top,.stage-bottom{font-size:8px;left:14px;right:14px}.hero-browser{height:55%;top:19%}.hero-phone{height:55%;width:27%;right:7%;border-radius:15px}.hero-phone img{border-radius:11px}.stage-tag{font-size:9px;padding:9px;bottom:20%}.cursor-tag{right:8%;top:18%;font-size:9px}.coord-one{font-size:8px}.coord-two{font-size:8px}.primary-button{padding:16px 20px}.section-heading{display:block}.section-heading h2{font-size:44px;line-height:1.08}.section-heading>p{font-size:14px;line-height:1.6;margin:19px 0 0}.section-heading>p br{display:none}.section-heading .eyebrow{margin-bottom:15px}.featured-grid{grid-template-columns:1fr;gap:35px}.project-image{height:250px}.selected .project-image{padding:16px 16px 0}.project-meta{flex-direction:row;align-items:center}.selected .project-meta h3{font-size:23px}.project-meta>span{font-size:10px;max-width:125px;text-align:right;line-height:1.6}.project-hover{opacity:1;transform:none;padding:8px 12px;font-size:10px}.phone-row{height:260px;gap:10px}.phone-row img{border-width:3px;border-radius:12px;max-width:30%}.ui-feature,.ux-process{padding:20px}.project-caption{padding-top:17px}.project-caption h3{font-size:23px}.project-caption p{font-size:12px}.pill{font-size:9px;padding:6px 9px}.process-image{height:240px}.web-grid{gap:28px 15px}.web-grid .project-image{height:200px;padding:9px 9px 0}.web-grid h3{font-size:19px}.web-grid .project-meta>span{font-size:10px;text-align:left;line-height:1.5;display:block;max-width:none}.web-grid .project-hover{padding:6px 9px;bottom:9px;right:9px;font-size:9px}.archive-controls{gap:6px;flex-wrap:wrap}.filter{font-size:11px;padding:7px 11px}#archive-count{width:100%;margin:7px 0 0}.archive-grid{gap:25px 15px}.archive-grid .project-image{height:150px;padding:8px}.archive-grid .project-meta>span{font-size:10px;text-align:left;max-width:none;display:block}.archive-grid .project-meta h3{font-size:18px}.archive-grid .project-hover{font-size:9px;padding:6px 9px;right:6px;bottom:6px}.archive-footer{margin-top:27px}.panel-note{font-size:8px;gap:20px}.panel-note>span:last-child:not(:first-child){display:none}.panel-note a{font-size:10px}.approach{gap:35px}.approach h2{font-size:48px}.approach-intro{font-size:15px}.discipline-tags span{font-size:10px}.approach-details{display:block}.approach-statement p{font-size:28px}.process-step{padding:22px 0}.process-step p{font-size:14px}.toolbox{padding-top:25px}.toolbox p{font-size:14px}.contact{min-height:700px;padding-top:90px}.contact>.eyebrow{top:35px}.contact-main{margin-bottom:65px}.contact h2{font-size:clamp(46px,11.4vw,66px);margin-bottom:28px}.contact-main>p{font-size:14px;margin-bottom:25px}.contact-seal{top:auto;bottom:105px;right:9%;width:75px;height:75px;opacity:.75}.contact-seal span{font-size:6px}.contact-seal b{font-size:28px}.contact-footer{bottom:28px;display:grid;grid-template-columns:1fr 1fr;font-size:11px;align-items:center}.contact-footer>div{grid-column:1/-1}.contact-footer>div p{font-size:10px}.contact-name{font-size:14px}.contact-footer>a:last-of-type{text-align:right}dialog{width:100vw;height:100svh;max-height:100svh;border:0;border-radius:0}.dialog-top{padding:16px 22px}.detail-header{grid-template-columns:1fr;padding:32px 24px 25px;gap:10px}.detail-header h2{font-size:40px}.detail-header .detail-headline{font-size:18px;margin-bottom:12px}.detail-description{font-size:14px}.detail-gallery{padding:0 20px 30px;grid-template-columns:1fr;gap:20px}.detail-gallery.mobile-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-gallery figure{padding:7px}.detail-gallery figcaption{font-size:10px}.detail-footer{padding:20px 24px 35px}.desktop-only{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-browser,.hero-phone{transform:none}}
html.horizontal{scrollbar-width:none}html.horizontal::-webkit-scrollbar{display:none}body{overflow-x:clip}.hero-stage button:focus-visible{outline-offset:2px}.project-meta>span{line-height:1.5}.detail-link:hover{color:#527b23}.contact-cta{gap:35px}
.horizontal .ui-feature-button{display:flex;flex-direction:column}.horizontal .phone-row{flex:1;min-height:0;width:100%}.horizontal .project-caption{flex-shrink:0;width:100%}.horizontal .ux-process{display:flex;flex-direction:column}.horizontal .process-image{flex:1;min-height:0}.horizontal .ux-process-head{flex-shrink:0}.horizontal .project-caption p{font-size:14px}.horizontal .project-meta>span{font-size:12px}.horizontal .filter,.horizontal .page-control{font-size:14px}.horizontal .archive-grid .project-meta h3{font-size:22px}


/* ===== Geovanny Rodríguez / dark technology theme ===== */
body{
  background:
    radial-gradient(circle at 16% 12%,rgba(65,132,218,.14),transparent 28rem),
    radial-gradient(circle at 86% 80%,rgba(34,84,148,.10),transparent 32rem),
    var(--paper);
}
.eyebrow,.tiny-label,.stage-top,.stage-bottom,.stage-coordinate,.identity span,.panel-note,.chapter,.contact-link-label{font-family:var(--mono)}
.wordmark{color:var(--blue);text-shadow:0 0 28px rgba(94,168,255,.16)}
.site-header,.horizontal .journey-bar{background:rgba(11,15,22,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header nav a:not(.contact-link):after{background:var(--blue)}
.contact-link{border-color:#40516a;background:#111722}
.contact-link:hover{background:var(--blue);color:#071019;border-color:var(--blue)}
button:focus-visible,a:focus-visible{outline-color:var(--blue)}
::selection{background:var(--blue);color:#06101a}
em{color:#8fbff0}
.primary-button{background:linear-gradient(135deg,#2f7ed8,#5ea8ff);color:#071019;border:1px solid #78b9ff;box-shadow:0 10px 34px rgba(44,118,205,.18)}
.primary-button:hover{background:linear-gradient(135deg,#4f96e6,#82c1ff)}
.button-dot{background:#d7ecff;box-shadow:0 0 14px #a8d6ff}
.hero-stage{background:#101722;background-image:linear-gradient(rgba(94,168,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(94,168,255,.04) 1px,transparent 1px),radial-gradient(circle at 70% 25%,rgba(68,139,226,.14),transparent 42%);background-size:20px 20px,20px 20px,auto;border-color:#29384b}
.orbit{border-color:#315274}.hero-browser{border-color:#182231;background:#182231;box-shadow:0 25px 55px rgba(0,0,0,.42)}
.browser-toolbar{background:#182231}.browser-toolbar i{background:#5d6e83}.browser-toolbar>span{color:#8ba0ba;font-family:var(--mono)}
.hero-phone{background:#080c12;box-shadow:0 24px 42px rgba(0,0,0,.45)}
.stage-tag,.cursor-tag,.project-hover{background:var(--blue);color:#071019}.cursor-tag{border-color:#84c3ff}.cursor-tag svg{color:var(--blue)}
.selected{background:linear-gradient(145deg,#101620,#151d29)}
.project-image{border-color:#273244;background:#151d2a!important}.project-image>img{filter:saturate(.90) contrast(1.02)}
.selected .project-image>img,.web-grid .project-image img{box-shadow:0 12px 34px rgba(0,0,0,.36)}
.ui-feature{background:#121b27;border-color:#26384b}.ux-process{background:#141c27;border-color:#2a3545}.phone-row img{border-color:#202b39;box-shadow:0 13px 26px rgba(0,0,0,.38)}
.pill{border-color:#41556d;color:#9bb8d8}.process-image{background:#0e141d}
.web-projects{background:linear-gradient(145deg,#09101a,#101a28);color:var(--ink)}
.web-projects em{color:#74b4ff}.web-projects .eyebrow,.web-projects .section-heading>p,.web-projects .project-meta>span,.web-projects .panel-note{color:#8797ac}
.filter{border-color:#314056;color:#b7c3d3}.filter:hover{border-color:#70b4ff}.filter.active{background:#5ea8ff;color:#071019;border-color:#5ea8ff}
.approach{background:linear-gradient(155deg,#0c121b,#131a25)}
.approach-statement{border-color:#2a394d}.discipline-tags span,.detail-tags span{border-color:#34465e;background:#111925}
.contact{background:radial-gradient(circle at 82% 20%,rgba(69,145,235,.24),transparent 24rem),linear-gradient(145deg,#111926,#0a0f17);color:var(--ink)}
.contact-main>p,.contact-footer p{color:#8f9bad}.contact h2 em{color:#6eb1ff}.contact-seal{border-color:#4385c7;box-shadow:0 0 55px rgba(65,143,231,.08)}
.contact-footer{border-color:#2a3d55}
.contact-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:880px;margin-top:24px}
.contact-links>a{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #2a3a4f;background:rgba(16,24,35,.72);transition:transform .2s,border-color .2s,background .2s}
.contact-links>a:hover{transform:translateY(-3px);border-color:#5ea8ff;background:#121f30}
.contact-link-label{font-size:9px;letter-spacing:.12em;color:#7f91a9}.contact-links strong{font-family:var(--heading);font-size:13px;font-weight:600;overflow-wrap:anywhere}
.chapter-divider{color:#697789}.journey-progress{background:#202a38}#progress-fill{background:linear-gradient(90deg,#418bdc,#79b9ff)}.journey-buttons button{border-color:#35445a}.journey-buttons button:hover:not(:disabled){background:#5ea8ff;color:#071019}
dialog{border-color:#344155;background:#0d131c;box-shadow:0 34px 100px rgba(0,0,0,.66)}dialog::backdrop{background:rgba(2,6,12,.82)}.dialog-top{background:rgba(13,19,28,.94);backdrop-filter:blur(15px)}.detail-gallery figure{background:#131b26;border-color:#2a3748}.detail-link:hover{color:#6fb4ff}
.noscript-note{background:#5ea8ff;color:#071019}

@media(max-width:600px){
  .site-header nav{background:#0c121b}
  .contact{padding-bottom:230px}
  .contact-links{grid-template-columns:1fr;margin-top:20px}
  .contact-footer{bottom:20px}
  .contact-seal{bottom:160px}
}
/* Dark palette refinements */
.approach h2 em{color:#7fb8f0}.approach-intro,.process-step p{color:var(--muted)}.process-step>span{color:#78a7d7}.process-step,.approach-statement{border-color:#2b3848}.page-control{border-color:#34445a;color:#b7c3d3}.page-control:not(:disabled):hover{background:var(--blue);color:#071019}.web-projects .project-hover{color:#071019}.contact-name{color:#dceaff}.archive-page{color:#8f9bad}
