:root{--paper:#f3f3f1;--bulb:#f5b50f;--mute:#5a5a57;--line:#d3d3cf;--d:"Bricolage Grotesque",system-ui,sans-serif;--b:"Instrument Sans",system-ui,sans-serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--paper);color:#000;font:400 1.0625rem/1.6 var(--b)}a{color:inherit}:focus-visible{outline:3px solid var(--bulb);outline-offset:3px}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}header .wrap{display:flex;justify-content:flex-end;align-items:center;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}nav{display:flex;gap:28px}nav a{text-decoration:none;font-weight:600}nav a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--bulb);text-decoration-color:var(--bulb);text-decoration-thickness:3px;text-underline-offset:6px}h1,h2,h3{font-family:var(--d);line-height:1.05;letter-spacing:-.03em}h1{font-size:clamp(2.4rem,6vw,5rem)}h1,h2{font-weight:800}h2{font-size:clamp(1.8rem,3.6vw,2.8rem);margin-bottom:32px}h3{font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.hero{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:40px;gap:40px;align-items:center;padding-top:56px;padding-bottom:96px}.lead{max-width:36rem;margin:24px 0 32px;color:var(--mute);font-size:1.2rem}section .lead{margin-top:0}.btn{display:inline-block;background:var(--bulb);color:#000;font:600 1.0625rem var(--b);padding:14px 28px;border:2px solid #000;border-radius:999px;text-decoration:none;cursor:pointer}.btn:hover{background:#000;color:var(--bulb)}.btn:disabled{opacity:.6;cursor:wait}.hero-logo{position:relative;width:100%;max-width:400px;justify-self:center;transform:translateY(-36px)}.hero-logo img{display:block;width:100%;height:auto}.hero-logo .lit{position:absolute;inset:0}.lit{opacity:0;animation:cycle 5s linear infinite}@keyframes cycle{0%{opacity:0}6%{opacity:.6}11%{opacity:.1}18%{opacity:1}72%{opacity:1}76%{opacity:.3}80%{opacity:.85}86%{opacity:0}to{opacity:0}}section{padding:88px 0}.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px 40px;gap:8px 40px}.cell{padding:28px;border-radius:16px;transition:background .25s}.cell:hover{background:#fff}.cell h3{margin:20px 0 8px}.cell p{color:var(--mute)}.ico{width:68px;height:68px;display:block;overflow:visible}.disc{fill:var(--bulb);transform-box:fill-box;transform-origin:center;transition:transform .35s ease}.cell:hover .disc{transform:scale(1.3)}.row{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:24px;gap:24px;padding:24px 0 0}.row p{color:var(--mute)}.row a{color:#000;font-weight:600}.proj{margin-bottom:24px}.frame{border:2px solid #000;border-radius:10px;overflow:hidden;background:#fff;min-height:0}.bar{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:2px solid #000;font-size:.9rem;font-weight:600}.frame img{display:block;width:100%}.ph{aspect-ratio:16/9;display:grid;place-items:center;background:var(--bulb);font:800 clamp(1.8rem,5vw,3.6rem)/1 var(--d);letter-spacing:-.03em;padding:24px;text-align:center}.gallery:focus-visible{outline:3px solid var(--bulb);outline-offset:4px}.viewport{position:relative;overflow:hidden}.slides{display:flex;transition:transform .45s ease}.slides img{flex:0 0 100%;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top}.nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:2px solid #000;background:var(--bulb);color:#000;display:grid;place-items:center;cursor:pointer;padding:0}.nav:hover{background:#000;color:var(--bulb)}.prev{left:14px}.next{right:14px}.dots{display:flex;justify-content:center;gap:10px;padding:12px;border-top:2px solid #000}.dots button{width:14px;height:14px;border-radius:50%;border:2px solid #000;background:#fff;padding:0;cursor:pointer}.dots .on{background:var(--bulb)}.steps-wrap{position:relative}.track{position:absolute;top:48px;left:16.66%;right:16.66%;height:4px;background:var(--line)}.track i{display:block;height:100%;background:linear-gradient(90deg,#fae28c,var(--bulb));transform-origin:left;transform:scaleX(0);transition:transform 1.6s linear .2s}.on .track i{transform:none}.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:32px;gap:32px;text-align:center}.node,.steps{position:relative}.node{width:64px;margin:0 auto 20px;background:var(--paper)}.node img{position:relative;display:block;width:100%;height:auto}.glow{position:absolute;inset:0;background:var(--c);opacity:0;transition:opacity .5s ease var(--t);-webkit-mask:url(/bulb-lit.png) center/100% 100% no-repeat;mask:url(/bulb-lit.png) center/100% 100% no-repeat}.on .glow{opacity:1}.steps p{max-width:20rem;margin:8px auto 0;color:var(--mute)}.contact{display:grid;grid-template-columns:1fr 1fr;grid-gap:48px;gap:48px;align-items:start}.big{display:inline-block;font:800 clamp(1.4rem,3vw,2.1rem)/1.3 var(--d);letter-spacing:-.02em;-webkit-text-decoration-color:var(--bulb);text-decoration-color:var(--bulb);text-decoration-thickness:4px;text-underline-offset:6px}.form{display:grid;grid-gap:18px;gap:18px}.form label{display:grid;grid-gap:6px;gap:6px;font-weight:600}.form input,.form textarea{font:400 1.0625rem var(--b);padding:12px 14px;border:2px solid #000;border-radius:8px;background:#fff;width:100%}.form input:focus,.form textarea:focus{outline:3px solid var(--bulb);outline-offset:0}.form .btn{justify-self:start}.hp{position:absolute;left:-9999px}.fmsg{min-height:1.6em;font-weight:600}.fmsg.ok{color:#1d6b2f}.fmsg.error,.fmsg.nokey{color:#a32d1a}footer{padding:40px 0;color:var(--mute);font-size:.95rem}footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.contact{grid-template-columns:1fr}}@media (max-width:760px){.hero,.row{grid-template-columns:1fr}.hero-logo{max-width:260px;justify-self:start;transform:none}.hero{padding-bottom:56px}.track{left:26px;right:auto;width:4px;height:auto;top:42px;bottom:60px}.track i{transform-origin:top;transform:scaleY(0);background:linear-gradient(180deg,#fae28c,var(--bulb))}.on .track i{transform:none}.steps{grid-template-columns:1fr;text-align:left}.steps li{display:grid;grid-template-columns:56px 1fr;grid-gap:20px;gap:20px}.node{margin:0;width:56px}.steps p{margin-left:0}}@media (max-width:560px){.grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.lit{animation:none;opacity:1}.track i{transform:none}.glow,.track i{transition:none}.glow{opacity:1}.disc,.slides{transition:none}}