:root { --black:#000; --ink:#1d1d1f; --soft:#f5f5f7; --blue:#0071e3; --grey:#6e6e73; --sans:ui-sans-serif,system-ui,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--soft); color:var(--ink); font-family:var(--sans); line-height:1.5; }
img { display:block; width:100%; }
a { color:inherit; }
.skip { position:fixed; z-index:120; left:1rem; top:1rem; padding:.7rem 1rem; background:white; transform:translateY(-200%); }.skip:focus{transform:none}
.mono-header { position:fixed; z-index:80; inset:0 0 auto; height:3.25rem; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(1.25rem,4vw,4rem); border-bottom:1px solid rgba(0,0,0,.08); background:rgba(250,250,252,.82); backdrop-filter:saturate(180%) blur(20px); }
.mono-brand { text-decoration:none; font-size:.82rem; font-weight:700; letter-spacing:-.02em; }.mono-header nav{display:flex;gap:clamp(1rem,3vw,2.6rem)}.mono-header nav a{font-size:.72rem;text-decoration:none}.header-cta{justify-self:end;padding:.36rem .8rem;border-radius:99px;background:var(--black);color:white;text-decoration:none;font-size:.72rem}
.variant-switcher{position:fixed;z-index:100;right:1rem;bottom:1rem;font-size:.72rem}.variant-switcher summary{min-width:10rem;padding:.75rem 1rem;border-radius:999px;background:rgba(20,20,20,.86);color:white;backdrop-filter:blur(18px);cursor:pointer;list-style:none;text-align:center}.variant-switcher summary::-webkit-details-marker{display:none}.variant-switcher nav{position:absolute;right:0;bottom:calc(100% + .45rem);min-width:12rem;padding:.4rem;border-radius:1rem;background:rgba(255,255,255,.97);box-shadow:0 1rem 3rem rgba(0,0,0,.18)}.variant-switcher a{display:block;padding:.7rem .8rem;border-radius:.7rem;text-decoration:none}.variant-switcher a:hover,.variant-switcher a[aria-current="page"]{background:#eee;color:var(--blue)}
.editor-launch{position:fixed;z-index:100;left:1rem;bottom:1rem;display:flex;align-items:center;gap:.45rem;min-height:2.7rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(20,20,20,.86);color:#fff;box-shadow:0 .8rem 2.2rem rgba(0,0,0,.18);backdrop-filter:blur(18px);font:600 .78rem/1 var(--sans);cursor:pointer}.editor-launch:hover{background:#000}.editor-launch:focus-visible{outline:3px solid rgba(0,113,227,.35);outline-offset:3px}
.mono-hero { min-height:100svh; padding:8rem 1.25rem 4rem; text-align:center; overflow:hidden; }
.eyebrow,.overline { margin:0 0 1rem; color:var(--grey); font-weight:600; }
.mono-hero h1 { max-width:82rem; margin:0 auto; font-size:clamp(4rem,9vw,9.4rem); line-height:.9; letter-spacing:-.075em; }
.mono-hero h1 span,.mono-intro h2 span,.service-copy h2 span,.mono-contact h2 span { color:#8a8a8e; }
.hero-copy { max-width:41rem; margin:2rem auto 1rem; color:var(--grey); font-size:clamp(1.05rem,2vw,1.35rem); }
.hero-links { display:flex; justify-content:center; gap:1.6rem; margin-top:1.4rem; }.hero-links a{color:var(--blue);text-decoration:none;font-size:1.05rem}.hero-links a::after{content:" ›"}
.mono-device { position:relative; width:min(82rem,94vw); aspect-ratio:3/2; margin:4rem auto 0; border-radius:clamp(1.8rem,3vw,3.2rem); background:#ddd; box-shadow:0 3rem 7rem rgba(0,0,0,.2); overflow:hidden; }
.mono-device>img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.device-camera { position:absolute; z-index:8; top:1.15rem; left:50%; width:5rem; height:1.25rem; transform:translateX(-50%); border-radius:2rem; background:#050505; }
.image-mono { filter:none; }
.image-color { display:none; }
.mono-device .image-color { clip-path:polygon(0 0,100% 0,0 100%); }
.mono-device .light-ring { display:none; }
.light-ring { position:absolute; z-index:6; left:var(--x); top:var(--y); width:calc(var(--r)*2); aspect-ratio:1; border:1px solid rgba(255,255,255,.8); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; box-shadow:0 0 0 1px rgba(0,0,0,.12),inset 0 0 3rem rgba(255,255,255,.06); }
.light-ring::after{content:"+";position:absolute;left:50%;top:50%;transform:translate(-50%,-54%);color:white;text-shadow:0 1px 6px black;font-size:1.5rem;font-weight:300}
.light-note { position:absolute; z-index:7; left:2rem; bottom:1.8rem; margin:0; padding:.45rem .7rem; border-radius:999px; background:rgba(0,0,0,.52); color:white; backdrop-filter:blur(12px); font-size:.72rem; }.light-note span{display:inline-block;width:.45rem;aspect-ratio:1;margin-right:.35rem;border-radius:50%;background:#fff}
.mono-intro { padding:clamp(7rem,13vw,13rem) 1.5rem; text-align:center; background:white; }.mono-intro h2{max-width:78rem;margin:0 auto;font-size:clamp(3rem,7vw,7rem);line-height:.95;letter-spacing:-.065em}
.mono-portfolio { padding:clamp(6rem,11vw,11rem) clamp(1rem,4vw,4rem); background:#000; color:white; }
.section-title { max-width:76rem; margin:0 auto 5rem; text-align:center; }.section-title>p:first-child{color:#86868b;font-weight:600}.section-title h2{margin:1rem 0;font-size:clamp(3rem,7vw,7rem);line-height:.94;letter-spacing:-.06em}.instruction{color:#86868b}.instruction::before{content:"◉ ";color:white}
.reveal-grid { max-width:86rem; margin:auto; display:grid; grid-template-columns:repeat(12,1fr); gap:1.2rem; align-items:start; }
.reveal-card { --x:50%;--y:48%;--r:clamp(5rem,12vw,10rem); grid-column:span 6; margin:0; padding:1rem; border-radius:2.4rem; background:#151517; outline:none; }.reveal-card:nth-child(3){grid-column:4/10}.reveal-card:focus-visible{box-shadow:0 0 0 4px var(--blue)}
.image-wrap { position:relative; aspect-ratio:3/2; overflow:hidden; border-radius:1.7rem; }.reveal-card:nth-child(3) .image-wrap{aspect-ratio:4/5}
.gallery-card .image-mono{transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .18s ease}.gallery-card .image-mono.gallery-slide-next{animation:gallery-slide-next .38s cubic-bezier(.2,.7,.2,1) both}.gallery-card .image-mono.gallery-slide-prev{animation:gallery-slide-prev .38s cubic-bezier(.2,.7,.2,1) both}@keyframes gallery-slide-next{from{opacity:.82;transform:translateX(2%)}to{opacity:1;transform:translateX(0)}}@keyframes gallery-slide-prev{from{opacity:.82;transform:translateX(-2%)}to{opacity:1;transform:translateX(0)}}.gallery-nav{position:absolute;z-index:3;top:50%;display:grid;place-items:center;width:2.9rem;height:2.9rem;padding:0;transform:translateY(-50%);border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(0,0,0,.48);color:#fff;line-height:0;backdrop-filter:blur(10px);cursor:pointer}.gallery-nav svg{display:block;width:1rem;height:1rem;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.gallery-prev svg{transform:rotate(180deg)}.gallery-prev{left:1rem}.gallery-next{right:1rem}.gallery-nav:hover{background:rgba(0,0,0,.72)}.gallery-nav:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.image-wrap img,.about-photo img,.service-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .45s cubic-bezier(.2,.7,.2,1)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.image-wrap:hover img,.service-visual:hover img,.about-photo:hover img,.mono-device:hover>img{transform:scale(1.025)}}
.reveal-card figcaption { display:grid; grid-template-columns:1fr auto; padding:1.2rem .5rem .4rem; }.reveal-card figcaption span{grid-column:1;color:#86868b;font-size:.78rem}.reveal-card figcaption b{grid-column:1;margin-top:.15rem;font-size:1.8rem;letter-spacing:-.04em}.reveal-card figcaption small{grid-column:2;grid-row:1/3;align-self:center;color:#86868b}
.mono-services { padding:clamp(6rem,11vw,11rem) clamp(1rem,5vw,5rem); }.service-copy{max-width:65rem;margin:0 auto 5rem;text-align:center}.service-copy h2{margin:0;font-size:clamp(3rem,6vw,6.3rem);line-height:.95;letter-spacing:-.06em}.service-copy>p:last-child{max-width:40rem;margin:1.5rem auto;color:var(--grey);font-size:1.15rem}.service-cards{max-width:82rem;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.15rem}.service-cards article{display:flex;min-width:0;flex-direction:column;padding:.7rem;overflow:hidden;border:1px solid rgba(0,0,0,.06);border-radius:2.25rem;background:#fff;box-shadow:0 1.3rem 3rem rgba(0,0,0,.06);transition:transform .28s ease,box-shadow .28s ease}.service-cards article:hover{transform:translateY(-.45rem);box-shadow:0 1.8rem 4rem rgba(0,0,0,.11)}.service-visual{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:1.7rem;background:#ededf0}.service-visual img{width:100%;height:100%;object-fit:contain;object-position:center}.service-visual>span{position:absolute;top:1rem;left:1rem;display:grid;width:2.65rem;aspect-ratio:1;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(20,20,22,.64);color:#fff;font-size:.75rem;font-weight:700;backdrop-filter:blur(14px)}.service-card-copy{display:flex;flex:1;flex-direction:column;padding:1.55rem 1.35rem 1.25rem}.service-card-copy>p:first-child{margin:0 0 .35rem;color:var(--blue);font-size:.72rem;font-weight:700;letter-spacing:.02em}.service-cards h3{margin:0;font-size:clamp(2rem,3vw,2.8rem);line-height:1;letter-spacing:-.05em}.service-card-copy>p:not(:first-child){min-height:4.5rem;margin:1rem 0 1.4rem;color:var(--grey);font-size:.98rem}.service-card-copy>a{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:1rem;border-top:1px solid #e5e5e7;color:var(--ink);font-size:.8rem;font-weight:700;text-decoration:none}.service-card-copy>a span{color:var(--blue);font-size:1rem}.service-card-copy>a:hover{color:var(--blue)}
.mono-about { display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center;padding:clamp(6rem,11vw,11rem) clamp(1rem,7vw,8rem);background:white; }.about-photo{position:relative;aspect-ratio:3/2;max-height:75rem;overflow:hidden;border-radius:2.5rem;background:#ddd}.mono-about h2{margin:.5rem 0 2rem;font-size:clamp(3.2rem,6vw,6.5rem);line-height:.9;letter-spacing:-.065em}.mono-about .lead{color:var(--blue);font-size:clamp(1.3rem,2.5vw,2.2rem);line-height:1.15;font-weight:600}.mono-about div:last-child>p:last-child{max-width:38rem;color:var(--grey);font-size:1.05rem}
.mono-contact { margin:1rem;padding:clamp(6rem,11vw,11rem) 1.5rem;border-radius:2.8rem;background:#000;color:white;text-align:center}.mono-contact>p{color:#86868b}.mono-contact h2{margin:1rem auto;font-size:clamp(4rem,9vw,9.5rem);line-height:.86;letter-spacing:-.075em}.mono-contact div{display:flex;justify-content:center;gap:.8rem;margin-top:3rem}.mono-contact a{padding:.78rem 1.15rem;border-radius:999px;background:var(--blue);text-decoration:none}.mono-contact a:last-child{background:#2a2a2c}
footer{display:flex;justify-content:space-between;gap:2rem;padding:2rem clamp(1.25rem,4vw,4rem);color:var(--grey);font-size:.72rem}footer a{text-decoration:none}
.image-editor{width:min(74rem,calc(100vw - 2rem));max-height:min(88vh,56rem);padding:0;overflow:hidden;border:0;border-radius:2rem;background:#f5f5f7;color:var(--ink);box-shadow:0 2rem 8rem rgba(0,0,0,.38)}.image-editor::backdrop{background:rgba(0,0,0,.48);backdrop-filter:blur(12px)}.editor-shell{display:flex;flex-direction:column;height:min(88vh,56rem);max-height:inherit;overflow-x:hidden;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable}.editor-shell::-webkit-scrollbar{width:12px}.editor-shell::-webkit-scrollbar-track{background:#e7e7ea}.editor-shell::-webkit-scrollbar-thumb{border:3px solid #e7e7ea;border-radius:999px;background:#8e8e93}.editor-head{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;padding:1.5rem 1.5rem .5rem}.editor-kicker{margin:0 0 .25rem;color:var(--blue);font-size:.72rem;font-weight:700;letter-spacing:.02em}.editor-head h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1;letter-spacing:-.045em}.editor-close{width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:#e3e3e7;color:#333;font:300 1.8rem/1 var(--sans);cursor:pointer}.editor-help{flex:0 0 auto;margin:.5rem 1.5rem 1.2rem;color:var(--grey);font-size:.92rem}.editor-slots{display:flex;flex:0 0 auto;gap:.5rem;padding:0 1.5rem 1rem;overflow-x:auto}.editor-slot,.focus-option{white-space:nowrap;padding:.65rem .9rem;border:1px solid #d2d2d7;border-radius:999px;background:white;color:var(--ink);font:600 .82rem/1 var(--sans);cursor:pointer}.editor-slot[aria-pressed="true"],.focus-option[aria-pressed="true"]{border-color:#000;background:#000;color:#fff}.editor-library{display:grid;flex:0 0 auto;min-height:auto;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:.65rem;padding:.2rem 1.5rem 1.5rem;overflow:visible}.image-choice{position:relative;width:100%;min-width:0;height:auto;aspect-ratio:4/3;padding:0;overflow:hidden;border:3px solid transparent;border-radius:1rem;background:#ddd;cursor:pointer}.image-choice img{width:100%;height:100%;object-fit:contain}.image-choice span{position:absolute;inset:auto .35rem .35rem;padding:.32rem .45rem;border-radius:.45rem;background:rgba(0,0,0,.66);color:#fff;font-size:.66rem;line-height:1.2;text-align:left;backdrop-filter:blur(8px)}.image-choice[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 2px rgba(0,113,227,.18)}.image-choice[aria-pressed="true"]::after{content:"✓";position:absolute;top:.4rem;right:.4rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--blue);color:white;font-weight:700;line-height:1.5rem;text-align:center}.editor-actions{position:sticky;z-index:5;bottom:0;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-top:1px solid #ddd;background:rgba(245,245,247,.96);backdrop-filter:blur(18px)}.editor-actions button{min-height:2.6rem;padding:.65rem 1rem;border:0;border-radius:999px;font:600 .8rem/1 var(--sans);cursor:pointer}.editor-reset{background:#e3e3e7;color:#333}.editor-done{background:var(--blue);color:#fff}
.editor-import-row{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem 1rem;color:var(--grey);font-size:.72rem}.editor-import-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.editor-import{display:inline-flex;align-items:center;min-height:2.5rem;padding:.65rem .9rem;border-radius:999px;background:var(--blue);color:white;font-weight:700;cursor:pointer}.editor-import-secondary{background:#e3e3e7;color:#222}.editor-import input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.editor-crop-preview{position:relative;flex:0 0 auto;width:min(24rem,calc(100% - 3rem));aspect-ratio:3/2;margin:0 1.5rem 1rem;overflow:hidden;border-radius:1rem;background:#ddd}.editor-crop-preview[data-slot="about"]{width:min(10rem,calc(100% - 3rem));aspect-ratio:2/3}.editor-crop-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .12s ease}.editor-crop-preview>span{position:absolute;right:.55rem;bottom:.55rem;padding:.3rem .5rem;border-radius:999px;background:rgba(0,0,0,.64);color:#fff;font-size:.62rem;backdrop-filter:blur(8px)}
.editor-gallery-folders{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.5rem 1rem}.editor-gallery-folders>div:first-child{display:flex;flex-direction:column;color:var(--grey);font-size:.72rem}.editor-gallery-folders strong{color:var(--ink);font-size:.86rem}.folder-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.folder-buttons label{display:inline-flex;align-items:center;min-height:2.5rem;padding:.65rem .9rem;border:1px solid #d2d2d7;border-radius:999px;background:#fff;color:#222;font-size:.78rem;font-weight:700;cursor:pointer}.folder-buttons input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:760px){.mono-header nav{display:none}.mono-hero{padding-top:7rem}.mono-device{width:100%;aspect-ratio:4/3;--r:8rem}.mono-device>img{object-position:center center}.reveal-grid,.service-cards,.mono-about{grid-template-columns:1fr}.reveal-card,.reveal-card:nth-child(3){grid-column:auto}.reveal-card:nth-child(1) .image-wrap,.reveal-card:nth-child(2) .image-wrap{aspect-ratio:3/2}.reveal-card:nth-child(3) .image-wrap{aspect-ratio:4/5}.service-cards{max-width:32rem}.service-cards article{min-height:auto}.service-cards h3{margin-top:0}.mono-about{gap:4rem}.about-photo{max-height:75vh;margin-inline:auto}.mono-contact div,footer{flex-direction:column;align-items:stretch}.mono-contact a{display:block}}
@media(min-width:761px) and (max-width:980px){.service-cards{grid-template-columns:repeat(2,minmax(0,1fr));max-width:60rem}.service-cards article:last-child{grid-column:1/-1;width:calc(50% - .575rem);justify-self:center}}
@media(max-width:760px){.editor-launch{left:.7rem;bottom:.7rem}.variant-switcher{right:.7rem;bottom:.7rem}.image-editor{width:100vw;max-width:none;max-height:92svh;margin:auto 0 0;border-radius:1.5rem 1.5rem 0 0}.editor-shell{height:92svh}.editor-head{padding:1.2rem 1rem .4rem}.editor-help{margin:.4rem 1rem 1rem}.editor-slots,.editor-focus{padding-left:1rem;padding-right:1rem}.editor-crop-preview{width:min(18rem,calc(100% - 2rem));margin:0 1rem .8rem}.editor-crop-preview[data-slot="about"]{width:min(8rem,calc(100% - 2rem))}.editor-focus{align-items:flex-start;flex-direction:column}.editor-zoom{width:100%;grid-template-columns:auto 1fr 3.5rem;margin-left:0}.editor-import-row,.editor-gallery-folders{align-items:flex-start;flex-direction:column;padding:0 1rem 1rem}.folder-buttons{width:100%}.folder-buttons label{flex:1;justify-content:center}.editor-library{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 1rem 1rem}.editor-actions{flex-direction:row;align-items:center;padding:.85rem 1rem}.editor-actions button{font-size:.74rem}.gallery-nav{width:2.6rem;height:2.6rem}.gallery-prev{left:.65rem}.gallery-next{right:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

.legal-main{min-height:calc(100svh - 5rem);padding:8rem clamp(1.25rem,7vw,7rem) 6rem;background:#fff}
.legal-page{width:min(100%,58rem);margin:0 auto}
.legal-page h1{margin:.4rem 0 1rem;font-size:clamp(3.5rem,9vw,7rem);line-height:.92;letter-spacing:-.07em}
.legal-intro{margin:0 0 4rem;color:var(--grey);font-size:1rem}
.legal-page section{margin:0 0 2.8rem}
.legal-page h2{margin:0 0 .7rem;font-size:clamp(1.4rem,3vw,2rem);line-height:1.1;letter-spacing:-.04em}
.legal-page p{max-width:52rem;color:#4d4d52;font-size:1rem;line-height:1.75}
.legal-page a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:.18em}
.legal-back{margin-top:4rem}
