*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:.2rem solid #fff;outline-offset:.2rem;box-shadow:0 0 0 .3rem var(--color-ink)}:root{--color-bg: rgb(249, 233, 233);--color-primary: #c9293f;--color-ink: #111;--color-muted: #555;--color-light: #fff;--font: sans-serif;--font-size-h1: clamp(2rem, 4vw, 3.6rem);--font-size-h2: clamp(2rem, 3vw, 3rem);--font-size-h3: clamp(2rem, 2.5vw, 2.8rem);--min-font-size: 1rem;--border: .15rem solid var(--color-ink);--shadow: .2rem .2rem 0 var(--color-ink)}body{background:var(--color-bg);font-family:var(--font);font-size:var(--min-font-size);overflow-x:hidden;-webkit-font-smoothing:antialiased}canvas{display:block;position:fixed;inset:0;z-index:0}h1,h2,h3{font-weight:800;color:var(--color-light)}a{text-decoration:none}.h1-font{font-size:var(--font-size-h1)}.h2-font{font-size:var(--font-size-h2)}.h3-font{font-size:var(--font-size-h3)}.btn{box-shadow:var(--shadow);background:var(--color-primary);border:var(--border);color:var(--color-light);width:max-content;font-weight:800;text-transform:uppercase;padding:1rem;letter-spacing:2px;transition:transform .1s,box-shadow .1s;&:hover{transform:translate(-.125rem,-.125rem);box-shadow:.3125rem .3125rem 0 var(--color-ink)}}@keyframes confetti-fall{to{transform:translateY(110vh) translate(var(--drift)) rotate(720deg);opacity:0}}@keyframes fade-up{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(2rem)}to{opacity:1;transform:translate(0)}}body>a{background:var(--color-ink);position:absolute;top:-100%;left:1rem;z-index:100;color:#fff;font-weight:800;text-decoration:none;padding:1rem;&:focus{top:1rem}}main{position:relative;z-index:1}html:not(.js) :is(#s5,#work,#services,#contact){background:#c9293f}html.js:not(.revealed){overflow:hidden;height:100dvh}@media (prefers-reduced-motion: no-preference){html.js main{transition:opacity .4s}}html.js:not(.revealed) main{opacity:0;visibility:hidden;pointer-events:none}section{padding:4rem 2rem;display:flex;flex-direction:column;gap:2rem}#s5{min-height:100dvh;justify-content:center;background:#c9293feb;dl{display:flex;flex-direction:column;gap:.3rem;@media (min-width: 450px){display:grid;grid-template-columns:repeat(3,auto);grid-auto-flow:column;row-gap:.3rem;column-gap:2rem;justify-content:start}}dd{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;color:var(--color-light);line-height:1;text-shadow:0 1px 8px rgba(0,0,0,.4)}dt{font-size:.7rem;font-weight:800;color:var(--color-light);text-shadow:0 1px 8px rgba(0,0,0,.4);margin-top:.3rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem;&:last-child{margin-bottom:0}@media (min-width: 450px){margin-bottom:0}}}#wcag-cta{background:#b02437;@media (min-width: 700px){flex-direction:row;align-items:center;justify-content:space-between}p{color:var(--color-light);font-size:1rem;line-height:1.6;max-width:36rem}.btn{flex-shrink:0;@media (min-width: 700px){white-space:nowrap}@media (max-width: 699px){width:100%;text-align:center;font-size:.85rem;padding:.75rem 1rem}}}#work{min-height:100dvh;justify-content:center;position:relative;background:#c9293f;p{font-size:1rem;color:var(--color-light);line-height:1.6;max-width:48rem}}#services{background:#b02437;>p{font-size:1rem;color:var(--color-light);line-height:1.6;max-width:48rem}ul{list-style:none;display:flex;flex-direction:column}li{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"num  text" "title text";grid-template-rows:auto 1fr;column-gap:3rem;padding:2.5rem 0;border-top:1px solid rgba(255,255,255,.2);&:last-child{border-bottom:1px solid rgba(255,255,255,.2)}@media (max-width: 599px){grid-template-columns:1fr;grid-template-areas:"num" "title" "text";grid-template-rows:auto;gap:.6rem}}span{grid-area:num;font-size:.7rem;font-weight:800;letter-spacing:.12em;color:#fff}h3{grid-area:title;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;color:var(--color-light);align-self:end}li p{grid-area:text;font-size:1rem;color:var(--color-light);line-height:1.6;align-self:center}}#reviews{background:#c9293f;ul{list-style:none;display:flex;flex-direction:column;gap:1.5rem;max-width:48rem}li{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:.8rem;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}blockquote p{font-size:1rem;color:var(--color-light);line-height:1.7}li footer{position:static;background:none;border:none;box-shadow:none;padding:0;display:flex;align-items:center;gap:.75rem;pointer-events:auto}strong{display:block;font-size:.9rem;color:var(--color-light)}.reviews-link{color:#fff;font-size:.85rem;font-weight:800;text-decoration:none;transition:text-decoration .15s;&:hover{text-decoration:underline}}.review-avatar{width:2.4rem;height:2.4rem;border-radius:50%;background:#4a90a4;flex-shrink:0}.review-stars{color:#f5c518;font-size:.85rem;letter-spacing:.05em}}#contact{padding:0;gap:0;display:grid;grid-template-columns:1fr 1fr;min-height:100dvh;@media (max-width: 699px){grid-template-columns:1fr}h2{background:#0000001f;color:var(--color-light);padding:6rem 3rem;display:flex;align-items:center}form{background:#f7f5f3;padding:6rem 3rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-content:center;@media (max-width: 699px){padding:3rem 2rem;grid-template-columns:1fr}}form>p:nth-child(4),form>p:nth-child(5),form>button,form>output{grid-column:1 / -1}.form-honeypot{display:none}#contact-status{color:green}label{display:block;font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.5rem}:is(input,textarea){width:100%;background:transparent;border:none;border-bottom:.0625rem solid rgba(0,0,0,.2);padding:.6rem 0;font-family:var(--font);font-size:1rem;color:var(--color-ink);transition:border-color .2s;&:focus{outline:none;border-bottom-color:var(--color-ink)}}textarea{resize:vertical;min-height:6rem}output{font-size:.9rem;font-weight:800;color:var(--color-primary);min-height:1.4rem}}@media (prefers-reduced-motion: no-preference){html.revealed #s5 .word{opacity:0;display:inline-block;animation:word-pop .5s ease-out calc(var(--i) * 38ms) both}}@keyframes word-pop{0%{opacity:0;transform:translateY(.9rem) scale(.85) rotate(-2deg);filter:blur(3px)}65%{opacity:1;transform:translateY(-.2rem) scale(1.05) rotate(.5deg);filter:blur(0)}82%{transform:translateY(.05rem) scale(.99) rotate(0)}to{opacity:1;transform:none;filter:blur(0)}}#lychee-btn{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:2;background:none;border:none;color:var(--color-ink);font-family:var(--font);font-size:.65rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;opacity:.55;padding:.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:opacity .2s;&:hover{opacity:.85}.lychee-tagline{font-size:1rem;font-weight:400;letter-spacing:.02em;text-transform:none;opacity:.75;line-height:1.5;text-align:center;margin-bottom:.3rem}.lychee-arrow{font-size:1.1rem;display:block;animation:hint-bob 2s ease-in-out infinite}}html:not(.js) #lychee-btn{display:none}html.revealed #lychee-btn,html.revealed footer{display:none}@keyframes hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-.5rem)}}.wcag-label{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:.75rem}#work-carousel{position:relative}#work-track{display:grid;gap:1rem;list-style:none;@media (min-width: 600px){display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:1rem;scrollbar-width:none;&::-webkit-scrollbar{display:none}}li{flex:0 0 min(85%,42rem);scroll-snap-align:start}article{border-radius:.8rem;height:24rem;background:#2a1a1a;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;gap:.4rem;position:relative;overflow:hidden;img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;opacity:1;transition:opacity .4s;@starting-style{opacity:0}}&:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,transparent 65%);pointer-events:none}span{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff;position:relative;z-index:1}h3{font-size:1.4rem;font-weight:800;color:#fff;position:relative;z-index:1}p{font-size:1rem;color:#ffffffbf;line-height:1.5;position:relative;z-index:1}}.project-link{display:block;text-decoration:none;color:inherit;height:100%}.project-link:hover article{transform:translateY(-.25rem);box-shadow:0 .5rem 1.5rem #0000001f}}:is(#work-prev,#work-next){display:none;@media (min-width: 600px){display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:3.2rem;height:3.2rem;background:var(--color-primary);color:#fff;border:var(--border);box-shadow:4px 4px 0 var(--color-ink);font-size:1.2rem;font-weight:800;cursor:pointer;transition:transform .1s,box-shadow .1s;&:hover{transform:translateY(calc(-50% - 2px)) translate(-2px);box-shadow:6px 6px 0 var(--color-ink)}}}#work-prev{left:1.5rem}#work-next{right:1.5rem}footer{position:absolute;top:2.25rem;right:10%;z-index:2;background:#fff;border:var(--border);box-shadow:var(--shadow);padding:.375rem .875rem;color:var(--color-ink);font-size:.625rem;font-weight:800;letter-spacing:.0625rem;display:flex;align-items:center;gap:.5rem;pointer-events:none}.lang-switcher{display:flex;align-items:center;gap:.35rem;padding-left:.6rem;border-left:1px solid rgba(0,0,0,.15);pointer-events:auto;a{color:var(--color-muted);text-decoration:none;font-size:.75rem;padding:.2rem .1rem;transition:color .15s;&:hover{color:var(--color-ink)}&[aria-current=page]{color:var(--color-ink)}}}#contact form.contact-success{align-content:center;justify-items:center;text-align:center}.success-title{grid-column:1 / -1;font-size:clamp(3rem,6vw,5rem);font-weight:800;color:var(--color-ink);letter-spacing:-.03em;line-height:1}.success-sub{grid-column:1 / -1;font-size:1rem;color:var(--color-muted)}.confetti-piece{position:fixed;top:-2rem;z-index:1000;pointer-events:none;border-radius:.1rem;animation:confetti-fall linear forwards}@media (prefers-reduced-motion: no-preference){#work-track article{opacity:0;animation:fade-up linear both;animation-timeline:view();animation-range:entry 0% entry 40%}}@media (prefers-reduced-motion: no-preference){#services li p{opacity:0;animation:fade-in-right linear both;animation-timeline:view();animation-range:entry 15% entry 55%}}@media (prefers-reduced-motion: no-preference){#s5>dl,#work>p,#work>h2,#services>p,#services>h2,#contact>p,#contact>h2,#contact>address{opacity:0;animation:fade-up linear both;animation-timeline:view();animation-range:entry 0% entry 40%}}
