:root{--paper: #fcfcfd;--raised: #ffffff;--ink: #15121c;--muted: #686472;--line: rgba(21, 18, 28, .065);--rule: #e6e4ec;--glow-a: rgba(80, 150, 255, .24);--glow-b: rgba(160, 80, 255, .2);--glow-c: rgba(255, 180, 60, .2);--hue-light: .8 .12;--hue-alpha: .35;--backdrop: rgba(250, 249, 255, .72);--select: color-mix(in oklab, var(--purple) 24%, white);color-scheme:light;--cell: 64px;--gutter: var(--cell);--blue: oklch(.7 .2 255);--purple: oklch(.64 .25 300);--magenta: oklch(.72 .24 335);--coral: oklch(.78 .18 38);--amber: oklch(.84 .18 75);--live: oklch(.72 .17 152);--sweep: linear-gradient(90deg, var(--blue), var(--purple), var(--magenta), var(--coral), var(--amber));--ease: cubic-bezier(.2, .7, .2, 1)}:root[data-theme=dark]{--paper: #0f0e13;--raised: #17151d;--ink: #f2f0f6;--muted: #a39fad;--line: rgba(255, 255, 255, .055);--rule: #2a2732;--glow-a: rgba(80, 140, 255, .3);--glow-b: rgba(170, 90, 255, .28);--glow-c: rgba(255, 170, 60, .14);--hue-light: .55 .16;--hue-alpha: .3;--backdrop: rgba(8, 7, 12, .7);--select: color-mix(in oklab, var(--purple) 45%, black);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0f0e13;--raised: #17151d;--ink: #f2f0f6;--muted: #a39fad;--line: rgba(255, 255, 255, .055);--rule: #2a2732;--glow-a: rgba(80, 140, 255, .3);--glow-b: rgba(170, 90, 255, .28);--glow-c: rgba(255, 170, 60, .14);--hue-light: .55 .16;--hue-alpha: .3;--backdrop: rgba(8, 7, 12, .7);--select: color-mix(in oklab, var(--purple) 45%, black);color-scheme:dark}}@media (max-width: 720px){:root{--cell: 40px;--gutter: 20px}}@property --pool-r{syntax: "<length>"; inherits: true; initial-value: 280px;}:root{transition:--pool-r .7s var(--ease)}*{box-sizing:border-box;margin:0}html{background:var(--paper);scroll-behavior:smooth;transition:background-color .3s}body{overflow-x:clip;color:var(--ink);font:400 17px/1.55 Schibsted Grotesk,system-ui,sans-serif;font-feature-settings:"ss01";-webkit-font-smoothing:antialiased;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0 / var(--cell) var(--cell),linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0 / var(--cell) var(--cell);min-height:100vh}a{color:inherit}:focus-visible{outline:2px solid var(--purple);outline-offset:3px}::selection{background:var(--select)}.grid-lit{position:fixed;inset:0;z-index:-1;pointer-events:none;background:conic-gradient(from 200deg at var(--mx, 50%) var(--my, 50%),var(--blue),var(--purple),var(--magenta),var(--coral),var(--amber),var(--blue));--pool: radial-gradient(var(--pool-r) var(--pool-r) at var(--mx, -999px) var(--my, -999px), #000, transparent 72%);-webkit-mask-composite:source-in;mask-composite:intersect;opacity:var(--lit, 1);transition:opacity .4s}.grid-lit.rows{-webkit-mask:linear-gradient(#000 1px,transparent 1px) 0 var(--gy, 0px) / var(--cell) var(--cell),var(--pool);mask:linear-gradient(#000 1px,transparent 1px) 0 var(--gy, 0px) / var(--cell) var(--cell),var(--pool);-webkit-mask-composite:source-in;mask-composite:intersect}.grid-lit.cols{-webkit-mask:linear-gradient(90deg,#000 1px,transparent 1px) 0 0 / var(--cell) var(--cell),var(--pool);mask:linear-gradient(90deg,#000 1px,transparent 1px) 0 0 / var(--cell) var(--cell),var(--pool);-webkit-mask-composite:source-in;mask-composite:intersect}@media (hover: none){.grid-lit{display:none}}.glow{position:fixed;z-index:-2;pointer-events:none;width:min(72vw,920px);aspect-ratio:1;right:-24vw;top:-32vw;border-radius:50%;background:radial-gradient(circle at 28% 65%,var(--glow-a),transparent 46%),radial-gradient(circle at 64% 58%,var(--glow-b),transparent 42%),radial-gradient(circle at 50% 28%,var(--glow-c),transparent 40%);filter:blur(48px) saturate(110%);animation:glow-breathe 10s ease-in-out infinite alternate}@keyframes glow-breathe{0%{transform:scale(.95) rotate(-2deg)}to{transform:scale(1.05) rotate(3deg)}}.top{height:var(--cell);padding:0 var(--gutter);display:flex;justify-content:space-between;align-items:center;font-size:15px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.02em;text-decoration:none}.brand-mark{width:26px;height:auto}.top-end{display:flex;align-items:center;gap:20px}.top-mail{text-decoration:none;color:var(--muted);transition:color .2s}.top-mail:hover{color:var(--ink)}.theme{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--rule);border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer;transition:border-color .2s,rotate .5s var(--ease)}.theme:hover{border-color:var(--ink)}.theme:active{rotate:25deg}.theme svg{width:16px;height:16px;grid-area:1 / 1;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;transition:opacity .3s,scale .4s var(--ease)}.theme .sun{opacity:0;scale:.5}:root[data-theme=dark] .theme .sun{opacity:1;scale:1}:root[data-theme=dark] .theme .moon{opacity:0;scale:.5}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .theme .sun{opacity:1;scale:1}:root:not([data-theme=light]) .theme .moon{opacity:0;scale:.5}}.hero{min-height:calc(100svh - var(--cell));min-height:round(down,calc(100svh - var(--cell)),var(--cell));padding:calc(var(--cell) * 2) var(--gutter) var(--cell);display:flex;flex-direction:column;justify-content:center}.hero-name{font-weight:800;font-size:clamp(42px,14vw,196px);line-height:.88;letter-spacing:-.06em;margin-left:-.04em}.hero-headline{font-size:clamp(24px,2.4vw,34px);line-height:1.2;letter-spacing:-.025em;margin-top:28px;max-width:26ch;font-weight:500}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:calc(var(--cell) * 1.5);padding-top:18px;border-top:1px solid var(--ink);width:min(100%,calc(var(--cell) * 16))}.facts div{padding-right:32px}.facts dt{font-size:13px;color:var(--muted);margin-bottom:6px}.facts dd{margin:0;max-width:34ch;text-wrap:pretty}[data-reveal]{animation:reveal 1s var(--ease) both;animation-delay:calc(var(--i, 0) * 90ms + .12s)}@keyframes reveal{0%{opacity:0;translate:0 18px;clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 -20% 0)}}.products{padding:calc(var(--cell) * 2) var(--gutter) var(--cell)}.products-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;min-height:var(--cell);padding-bottom:12px}.products-title{font-size:clamp(30px,3.2vw,44px);font-weight:700;letter-spacing:-.045em}.state{display:inline-flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap}.state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dot);box-shadow:0 0 0 4px color-mix(in oklab,var(--dot) 18%,transparent)}.state.live{--dot: var(--live)}.state.soon{--dot: var(--amber)}.contact{padding:calc(var(--cell) * 3) var(--gutter) calc(var(--cell) * 2)}.contact-lead{color:var(--muted);max-width:44ch}.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:16px}.contact-mail{font-weight:800;font-size:clamp(22px,6vw,100px);letter-spacing:-.06em;line-height:1.05;text-decoration:none;overflow-wrap:anywhere;background:var(--sweep) 0 0 / 0% 100% no-repeat,linear-gradient(var(--ink),var(--ink));-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-size .7s var(--ease)}.contact-mail:hover,.contact-mail:focus-visible{background-size:100% 100%,auto}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;min-height:var(--cell);padding:0 var(--gutter);border-top:1px solid var(--rule);background:var(--paper);font-size:14px;color:var(--muted)}.foot nav{display:flex;gap:20px}.foot a{text-decoration:none}.foot a:hover{color:var(--ink)}dialog.legal{--legal-bg: var(--raised);--legal-ink: var(--ink);--legal-muted: var(--muted);--legal-rule: var(--rule);--legal-title-weight: 800;border-radius:4px}dialog.legal::backdrop{background:var(--backdrop)}.legal-title{letter-spacing:-.05em}@media (min-width: 900px){.hero-name{font-size:clamp(60px,11vw,196px)}}@media (max-width: 560px){.top-mail{display:none}}@media (max-width: 820px){.facts{grid-template-columns:1fr;gap:16px}.facts div{padding-right:0}}@media (max-width: 720px){.hero{min-height:0;padding-block:calc(var(--cell) * 2.5) calc(var(--cell) * 1)}.products{padding-top:calc(var(--cell) * 2)}}@media (prefers-reduced-motion: reduce){.glow,[data-reveal]{animation:none}}.board{list-style:none;padding:0;margin-top:var(--cell);display:grid;grid-template-columns:repeat(auto-fill,calc(var(--cell) * 6));gap:var(--cell)}.card{position:relative;isolation:isolate;min-height:calc(var(--cell) * 5);height:100%;padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;text-decoration:none;background:color-mix(in oklab,var(--paper) 88%,transparent);box-shadow:inset 0 0 0 1px var(--rule);-webkit-tap-highlight-color:transparent;transition:background-color .3s}.card:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 60% at var(--px, 80%) var(--py, 0%),oklch(var(--hue-light) var(--h) / var(--hue-alpha)),transparent 70%);opacity:0;transition:opacity .4s}.card:focus-visible{outline:none}.card-trace{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.card-trace rect{x:1px;y:1px;width:calc(100% - 2px);height:calc(100% - 2px);fill:none;stroke:url(#trace);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s var(--ease)}.crop{position:absolute;width:14px;height:14px;border:0 solid var(--ink);opacity:0;transition:opacity .3s,translate .5s var(--ease)}.crop.tl{left:-10px;top:-10px;border-left-width:1.5px;border-top-width:1.5px;translate:-8px -8px}.crop.tr{right:-10px;top:-10px;border-right-width:1.5px;border-top-width:1.5px;translate:8px -8px}.crop.bl{left:-10px;bottom:-10px;border-left-width:1.5px;border-bottom-width:1.5px;translate:-8px 8px}.crop.br{right:-10px;bottom:-10px;border-right-width:1.5px;border-bottom-width:1.5px;translate:8px 8px}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-mark{width:44px;height:auto;flex:none;transition:rotate .7s var(--ease),scale .7s var(--ease)}.card-bottom{display:grid;gap:4px}.card-field{font-size:13px;color:var(--muted)}.card-name{font-size:clamp(28px,3vw,34px);font-weight:800;letter-spacing:-.055em;line-height:1.05;overflow-wrap:anywhere}.card-line{color:var(--muted);font-size:15px;line-height:1.45;margin-top:8px;text-wrap:pretty}.card-domain{margin-top:14px;font-size:14px;font-weight:600;justify-self:start;background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .5s var(--ease);padding-bottom:2px}@media (hover: hover){.card:hover:before{opacity:1}.card:hover .card-trace rect{stroke-dashoffset:0}.card:hover .crop{opacity:1;translate:0 0}.card:hover .card-mark{rotate:-10deg;scale:1.08}.card:hover .card-domain{background-size:100% 1px}}.card:focus-visible:before{opacity:1}.card:focus-visible .card-trace rect{stroke-dashoffset:0}.card:focus-visible .crop{opacity:1;translate:0 0}.card:focus-visible .card-domain{background-size:100% 1px}@media (hover: none){.card:active{background-color:color-mix(in oklab,var(--ink) 5%,var(--paper))}}@media (max-width: 899px){.board{grid-template-columns:1fr;gap:calc(var(--cell) * .5)}}@media (max-width: 720px){.board{margin-top:16px;gap:20px}.card{min-height:0;padding:20px}.card-top{margin-bottom:20px}}@media (prefers-reduced-motion: reduce){.card-trace rect,.crop,.card-mark{transition:none}}.langs{display:flex;padding:3px;border:1px solid var(--rule);border-radius:99px;font-size:13px;font-weight:600}.langs a{padding:5px 9px;border-radius:99px;text-decoration:none;color:var(--muted);line-height:1;transition:color .2s,background-color .2s}.langs a:hover{color:var(--ink)}.langs a[aria-current=page]{background:var(--ink);color:var(--paper)}@property --spin{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.copy{--spring: cubic-bezier(.34, 1.56, .64, 1);position:relative;isolation:isolate;overflow:hidden;display:inline-grid;place-items:center;padding:12px 20px;border-radius:99px;border:1.5px solid transparent;font:inherit;font-size:15px;font-weight:650;letter-spacing:-.01em;color:var(--ink);background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(from var(--spin),var(--ink) 0 100%) border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;translate:var(--lean-x, 0) var(--lean-y, 0);transition:translate .45s var(--spring),scale .35s var(--spring),color .3s,box-shadow .4s}.copy:active{scale:.92;transition-duration:.12s}.copy:focus-visible{outline-offset:4px}.copy-fill{position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(100deg,#1e64ef,#8c34e9 50%,#cf2bb7);clip-path:circle(0 at var(--cx, 50%) var(--cy, 50%));transition:clip-path .55s var(--ease)}.copy-labels{display:grid;overflow:hidden}.copy-labels>span{grid-area:1 / 1;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:translate .5s var(--spring),opacity .3s}.copy-labels svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.copy-b{translate:0 130%;opacity:0}.copy-b path{stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .45s var(--ease) .18s}@media (hover: hover){.copy:hover{background:linear-gradient(var(--paper),var(--paper)) padding-box,conic-gradient(from var(--spin),var(--blue),var(--purple),var(--magenta),var(--coral),var(--amber),var(--blue)) border-box;box-shadow:0 10px 30px -12px color-mix(in oklab,var(--purple) 70%,transparent);animation:copy-spin 2.2s linear infinite}.copy:hover .copy-a svg{rotate:-8deg;scale:1.1}}.copy-a svg{transition:rotate .4s var(--spring),scale .4s var(--spring)}@keyframes copy-spin{to{--spin: 360deg}}.copy[data-state=done]{color:#fff;box-shadow:0 14px 34px -12px #8c34e9cc}.copy[data-state=done] .copy-fill{clip-path:circle(160% at var(--cx, 50%) var(--cy, 50%))}.copy[data-state=done] .copy-a{translate:0 -130%;opacity:0}.copy[data-state=done] .copy-b{translate:0 0;opacity:1}.copy[data-state=done] .copy-b path{stroke-dashoffset:0}.copy[data-state=done]{animation:copy-pop .5s var(--spring)}@keyframes copy-pop{0%{scale:.92}45%{scale:1.08}to{scale:1}}.confetti{position:fixed;left:0;top:0;z-index:60;pointer-events:none;border-radius:2px}.contact-mail.flash{background-size:100% 100%,auto}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (prefers-reduced-motion: reduce){.copy,.copy-labels>span,.copy-fill,.copy-b path{transition:none;animation:none!important}}
