:root{--color-bg:#07080d;--color-bg-card:#131518;--color-border:#43526c66;--color-border-hover:#353940b3;--color-teal:#353940;--color-teal-glow:#3539404d;--color-text:#c8cdd6;--color-text-muted:#6b7280;--color-text-heading:#e2e6ec;--color-white:#f0f2f5;--color-redacted:#1a1f2e;--font-heading:"Glegoo", serif;--font-sans:"Schibsted Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--font-display:"Betania Patmos In", cursive}@font-face{font-family:Blushy Charm;src:url(/assets/blushy-charm-R2X8bpSB.otf)format("opentype");font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;line-height:1.6;display:flex}#grain{pointer-events:none;z-index:9999;opacity:.045;width:100%;height:100%;position:fixed;inset:0}.scan-lines{pointer-events:none;z-index:9998;opacity:.5;background:repeating-linear-gradient(#0000,#0000 2px,#00000012 2px 4px);position:fixed;inset:0}.hero{background:var(--color-bg);justify-content:center;align-items:center;height:100vh;display:flex;position:relative;overflow:hidden}.hero__video{object-fit:cover;filter:saturate(.8)brightness(.6);width:100%;height:100%;position:absolute;inset:0}.hero__overlay{background:radial-gradient(ellipse at center, transparent 50%, var(--color-bg) 100%);position:absolute;inset:0}.hero__content{z-index:2;text-align:center;padding:0 1.5rem;position:relative}.hero__logo{font-family:var(--font-display);color:var(--color-white);font-size:clamp(2.5rem,8vw,5rem);font-weight:400;line-height:1}.hero__coming-soon{font-family:var(--font-sans);letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-muted);opacity:0;margin-top:1.5rem;font-size:clamp(.8rem,1.5vw,1rem);font-weight:400;animation:1s 3.5s forwards fade-in}@keyframes fade-in{to{opacity:1}}.hero__logo .blur-char{filter:blur(12px);opacity:0;animation:.8s forwards blur-in;display:inline}@keyframes blur-in{to{filter:blur();opacity:1}}.hero__scroll-indicator{z-index:2;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.hero__scroll-line{background:var(--color-text-muted);width:1px;height:40px;animation:2s ease-in-out infinite pulse-line}@keyframes pulse-line{0%,to{opacity:.2;transform:scaleY(.7)}50%{opacity:.7;transform:scaleY(1)}}.site-footer{font-family:var(--font-mono);letter-spacing:.05em;color:var(--color-text-muted);opacity:0;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:auto;padding:1.5rem 1.5rem 1.75rem;font-size:.6rem;animation:1s 1s forwards fade-in;display:flex;position:relative}.page-home .site-footer{animation-delay:4s}.site-footer a{color:var(--color-text-muted);text-decoration:none;transition:color .2s}.site-footer a:hover{color:var(--color-text)}.site-footer__sep{opacity:.5}@media (width<=600px){.site-footer{gap:.4rem;padding:.75rem 1rem;font-size:.55rem}}.offerings{opacity:0;max-width:1100px;margin:0 auto;padding:6rem 1.5rem 8rem;transition:opacity .8s,transform .8s;transform:translateY(24px)}.offerings.is-visible{opacity:1;transform:translateY(0)}.offerings__header{text-align:center;margin-bottom:4rem}.offerings__label,.bio__label{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--color-teal);align-items:center;gap:1.5rem;margin-bottom:1.5rem;font-size:.7rem;font-weight:500;font-stretch:75%;display:flex}.offerings__label:before,.offerings__label:after,.bio__label:before,.bio__label:after{content:"";background:var(--color-border);flex:1;height:1px}.offerings__heading{font-family:var(--font-heading);color:var(--color-text-heading);letter-spacing:normal;margin-bottom:.75rem;font-size:clamp(1.6rem,4vw,2.75rem);font-weight:300;line-height:1.3}.offerings__tagline{color:var(--color-text-muted);font-size:.95rem;font-weight:300}.offerings__grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:2px;padding:2.5rem 2rem;transition:transform .3s,box-shadow .3s,border-color .3s;position:relative}.card:before{content:"";background:var(--color-teal);opacity:0;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:0 8px 32px #0000004d}.card:hover:before{opacity:1}.card__stamp{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--color-teal);border:1px solid var(--color-teal);margin-bottom:1.5rem;padding:2px 10px;font-size:.6rem;font-weight:500;display:inline-block}.card__domain{font-family:var(--font-heading);color:var(--color-white);margin-bottom:1rem;font-size:1.3rem;font-weight:400}.card__description{color:var(--color-text-muted);font-size:.88rem;font-weight:300;line-height:1.7}.card__rule{border:none;border-top:1px solid var(--color-border);margin:1.5rem 0}.card__meta{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.card__meta-row{align-items:center;gap:.75rem;font-size:.78rem;display:flex}.card__meta-key{font-family:var(--font-sans);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;min-width:4rem;font-size:.68rem;font-weight:500;font-stretch:75%}.card__meta-value{color:var(--color-text);font-size:.82rem}.card__redacted{background:var(--color-redacted);color:var(--color-redacted);-webkit-user-select:none;user-select:none;letter-spacing:0;border-radius:1px;padding:1px .75em;font-size:.75rem}.card__link{font-family:var(--font-mono);color:var(--color-teal);letter-spacing:.05em;font-size:.78rem;text-decoration:none;transition:opacity .2s}.card__link:hover{text-underline-offset:3px;text-decoration:underline}.site-nav{z-index:4;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:.4rem .6rem;font-size:.7rem;text-decoration:none;transition:color .2s;position:fixed;top:1.25rem;right:1.5rem}.site-nav:hover{color:var(--color-text)}.site-nav--delayed{opacity:0;animation:1s 3.5s forwards fade-in}@media (width<=600px){.site-nav{padding:.3rem .4rem;font-size:.65rem;top:.75rem;right:.9rem}}.bio{opacity:0;padding:7rem 1.5rem 6rem;transition:opacity .8s,transform .8s;transform:translateY(24px)}.bio.is-visible{opacity:1;transform:translateY(0)}.bio__inner{max-width:720px;margin:0 auto}.bio__heading{font-family:var(--font-heading);color:var(--color-text-heading);margin-bottom:2rem;font-size:clamp(1.4rem,3.2vw,2.1rem);font-weight:400;line-height:1.35}.bio__body p{color:var(--color-text);font-size:.95rem;font-weight:300;line-height:1.8}.bio__body p+p{margin-top:1.25rem}@media (width<=600px){.bio{padding:4.5rem 1.25rem 4rem}.bio__body p{font-size:.9rem;line-height:1.7}}.portfolio-hero__inner{max-width:1140px;margin:0 auto;padding:6rem 1.5rem 2.5rem}.portfolio-hero__heading{font-family:var(--font-heading);color:var(--color-text-heading);margin-bottom:.9rem;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:400;line-height:1.25}.portfolio-hero__tagline{color:var(--color-text-muted);max-width:50ch;font-size:.95rem;font-weight:300}.portfolio-grid{grid-template-columns:repeat(3,1fr);gap:3.5rem 2.25rem;max-width:1140px;margin:0 auto;padding:2rem 1.5rem 7rem;display:grid}.portfolio-card{color:inherit;opacity:0;flex-direction:column;gap:.85rem;text-decoration:none;transition:opacity .7s,transform .7s;display:flex;transform:translateY(24px)}.portfolio-card.is-visible{opacity:1;transform:translateY(0)}.portfolio-card:nth-child(2){transition-delay:80ms}.portfolio-card:nth-child(3){transition-delay:.16s}.portfolio-card__media{aspect-ratio:1;background:var(--color-redacted);border:1px solid var(--color-border);justify-content:center;align-items:center;margin-bottom:.5rem;transition:border-color .3s,transform .4s;display:flex;overflow:hidden}.portfolio-card:hover .portfolio-card__media{border-color:var(--color-border-hover);transform:translateY(-3px)}.portfolio-card__logo{object-fit:contain;width:52%;height:52%;transition:transform .4s}.portfolio-card:hover .portfolio-card__logo{transform:scale(1.04)}.portfolio-card__media--ilmastoselvitys{background:#0e2a2e}.portfolio-card__media--lakitulkki{background:#0e2a22}.portfolio-card__media--tattis{background:#1f3417}.portfolio-card__monogram{font-family:var(--font-heading);color:#fff;letter-spacing:-.02em;-webkit-user-select:none;user-select:none;font-size:clamp(4rem,9vw,7rem);font-weight:400;line-height:1}.portfolio-card__tag{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--color-teal);font-size:.65rem;font-weight:500}.portfolio-card__title{font-family:var(--font-heading);color:var(--color-white);font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:400;line-height:1.2}.portfolio-card__description{color:var(--color-text-muted);font-size:.88rem;font-weight:300;line-height:1.65}.portfolio-card__link{font-family:var(--font-mono);letter-spacing:.05em;color:var(--color-teal);margin-top:.4rem;font-size:.75rem;transition:color .2s}.portfolio-card:hover .portfolio-card__link{color:var(--color-text)}.portfolio-detail{opacity:0;max-width:820px;margin:0 auto;padding:5rem 1.5rem 7rem;transition:opacity .8s,transform .8s;transform:translateY(24px)}.portfolio-detail.is-visible{opacity:1;transform:translateY(0)}.portfolio-detail__header{margin-bottom:3rem}.portfolio-detail__tag{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--color-teal);border:1px solid var(--color-teal);margin-bottom:1.5rem;padding:2px 10px;font-size:.6rem;font-weight:500;display:inline-block}.portfolio-detail__title{font-family:var(--font-heading);color:var(--color-text-heading);margin-bottom:1.25rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:400;line-height:1.15}.portfolio-detail__lede{color:var(--color-text);max-width:60ch;font-size:1.05rem;font-weight:300;line-height:1.7}.portfolio-detail__media{aspect-ratio:16/9;background:var(--color-redacted);border:1px solid var(--color-border);justify-content:center;align-items:center;width:100%;margin-bottom:3rem;display:flex;overflow:hidden}.portfolio-detail__media--ilmastoselvitys{background:#0e2a2e}.portfolio-detail__media--lakitulkki{background:#0e2a22}.portfolio-detail__media--tattis{background:#1f3417}.portfolio-detail__logo{object-fit:contain;width:auto;max-width:32%;height:auto;max-height:70%}.portfolio-detail__monogram{font-family:var(--font-heading);color:#fff;letter-spacing:-.02em;-webkit-user-select:none;user-select:none;font-size:clamp(5rem,14vw,11rem);font-weight:400;line-height:1}.portfolio-detail__facts{border-top:1px solid var(--color-border);grid-template-columns:8rem 1fr;gap:1rem 1.75rem;margin-bottom:2.5rem;padding-top:2rem;display:grid}.portfolio-detail__facts dt{font-family:var(--font-sans);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;padding-top:.3rem;font-size:.68rem;font-weight:500;font-stretch:75%}.portfolio-detail__facts dd{color:var(--color-text);font-size:.92rem;font-weight:300;line-height:1.75}.portfolio-detail__link{font-family:var(--font-mono);color:var(--color-teal);letter-spacing:.05em;padding:.6rem 0;font-size:.8rem;text-decoration:none;transition:color .2s;display:inline-block}.portfolio-detail__link:hover{text-underline-offset:4px;color:var(--color-text);text-decoration:underline}@media (width<=900px){.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:3rem 1.75rem}}@media (width<=600px){.portfolio-hero__inner{padding:5rem 1.25rem 2rem}.portfolio-grid{grid-template-columns:1fr;gap:2.5rem;padding:1.5rem 1.25rem 5rem}.portfolio-detail{padding:3rem 1.25rem 5rem}.portfolio-detail__header,.portfolio-detail__media{margin-bottom:2rem}.portfolio-detail__facts{grid-template-columns:1fr;row-gap:.4rem;padding-top:1.5rem}.portfolio-detail__facts dt{padding-top:.75rem}.portfolio-detail__facts dt:first-of-type{padding-top:0}}@media (width<=768px){.offerings__grid{grid-template-columns:1fr}.card{padding:2rem 1.5rem}.offerings{padding:4rem 1.25rem 5rem}}@media (prefers-reduced-motion:reduce){.hero__scroll-line{opacity:.5;animation:none}.offerings,.bio,.portfolio-card,.portfolio-detail{opacity:1;transition:none;transform:none}.hero__logo .blur-char{filter:none;opacity:1;animation:none}html{scroll-behavior:auto}}
