:root{--paper:#0b0c0e;--ink:#ececec;--ink-2:#9c9c9c;--rule:#2a2a2a;--char:#262626;--on-char:#f4f4f4;--on-char-2:#a8a8a8;--char-rule:#3a3a3a;--live:#5fcf93;--build:#e6a74a;--dormant:#8a8a8a;--chip-on-bg:#ececec;--chip-on-fg:#111213;--portrait-filter:brightness(.82) contrast(1.05);--mark:url(/mb-mark-black-400.png);--display:"Familjen Grotesk", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--wide:64rem;--col:44rem;color-scheme:dark}:root[data-mode=light]{--paper:#f3f3f2;--ink:#161616;--ink-2:#5c5c5c;--rule:#d9d9d6;--char:#2f2f2f;--char-rule:#444;--live:#1f7a4c;--build:#9a5b00;--dormant:#7a7a7a;--chip-on-bg:#161616;--chip-on-fg:#f3f3f2;--portrait-filter:none;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.55}a{color:inherit;text-decoration-color:var(--rule);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}a:focus-visible,button:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid}.inner{max-width:var(--wide);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.mono{font-family:var(--mono);letter-spacing:.01em;font-size:.8125rem}.label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-size:.75rem}.mk{aspect-ratio:400/395;-webkit-mask:var(--mark) center / contain no-repeat;mask:var(--mark) center / contain no-repeat;background-color:currentColor;display:inline-block}.hero{--hz:58%;--cell:64px;min-height:40rem;color:var(--hfg);background:var(--hbg);display:flex;position:relative;overflow:hidden}.hero>.inner{z-index:5;flex-direction:column;width:100%;padding-block:0 5rem;display:flex;position:relative}.top{border-bottom:1px solid var(--hline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 2rem;min-height:4rem;display:flex}.brand{letter-spacing:-.01em;color:var(--hfg);align-items:center;gap:.65rem;font-weight:600;text-decoration:none;display:flex}.brand .mk{width:1.7rem}.top nav{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.top nav a{color:var(--hfg2);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .18s}.top nav a:hover{color:var(--hfg)}.mode{font:inherit;font-family:var(--mono);letter-spacing:.04em;color:var(--hfg2);border:1px solid var(--hline);cursor:pointer;background:0 0;border-radius:999px;padding:.15rem .65rem;font-size:.75rem;transition:color .18s,border-color .18s}.mode:hover{color:var(--hfg);border-color:#ffffff38}.thesis{max-width:34.5rem;padding-top:clamp(3rem,8vw,6rem)}.thesis h1{letter-spacing:-.04em;text-wrap:balance;max-width:15ch;margin:0;font-size:clamp(2.25rem,5.2vw,4.25rem);font-weight:600;line-height:1.06}.thesis p{color:var(--hfg2);max-width:30rem;margin:1.75rem 0 0;font-size:1rem;line-height:1.65}.thesis p a{color:var(--hfg);text-decoration-color:var(--hline)}.hlayer{pointer-events:none;position:absolute;inset:0}.h-floor{--hbg:#0b0c0e;--hfg:#f2f2f2;--hfg2:#999;--hline:#ffffff1a;--glow:198,194,186}.f-glow{background:radial-gradient(ellipse 34% 4.5% at 69% var(--hz), rgba(var(--glow), .3), transparent 72%), radial-gradient(ellipse 62% 11% at 67% var(--hz), rgba(var(--glow), .15), transparent 74%), radial-gradient(ellipse 100% 26% at 62% var(--hz), rgba(var(--glow), .05), transparent 76%)}.f-stage{perspective:1000px;perspective-origin:50% var(--hz);pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 80% 100% at 50% var(--hz), #000 35%, transparent 100%);mask-image:radial-gradient(ellipse 80% 100% at 50% var(--hz), #000 35%, transparent 100%);position:absolute;inset:0;overflow:hidden}.f-floor{left:-100%;right:-100%;top:var(--hz);transform-origin:50% 0;--hfade:linear-gradient(to bottom, transparent 0, transparent 13%, #0000001a 22%, #00000059 35%, #000 58%);height:120%;-webkit-mask-image:var(--hfade);mask-image:var(--hfade);position:absolute;overflow:hidden;transform:rotateX(78deg)}.f-grid{bottom:0;left:0;right:0;top:calc(var(--cell) * -1);will-change:transform;backface-visibility:hidden;background-image:linear-gradient(#45484ccc 0 1px,#45484c4d 2px,#0000 3px),linear-gradient(90deg,#45484ccc 1px,#0000 1px);background-size:var(--cell) var(--cell);position:absolute}.f-floor.lit{-webkit-mask-image:radial-gradient(ellipse 26% 42% at 69% 0, #000, transparent 72%), var(--hfade);mask-image:radial-gradient(ellipse 26% 42% at 69% 0, #000, transparent 72%), var(--hfade);-webkit-mask-composite:source-in;mask-composite:intersect}.f-floor.lit .f-grid{background-image:linear-gradient(rgba(var(--glow), .55) 0, rgba(var(--glow), .55) 1px, rgba(var(--glow), .2) 2px, transparent 3px), linear-gradient(90deg, rgba(var(--glow), .55) 1px, transparent 1px)}.f-horizon{left:0;right:0;top:var(--hz);background:linear-gradient(90deg, transparent 4%, rgba(var(--glow), .1) 28%, rgba(var(--glow), .34) 69%, rgba(var(--glow), .1) 92%, transparent);height:1px;position:absolute}.f-fade{bottom:-1px;left:0;right:0;top:calc(var(--hz) + 6%);pointer-events:none;background:linear-gradient(to bottom, transparent 0, transparent 22%, color-mix(in srgb, var(--paper) 14%, transparent) 44%, color-mix(in srgb, var(--paper) 45%, transparent) 68%, color-mix(in srgb, var(--paper) 82%, transparent) 88%, var(--paper));position:absolute}.f-obj{right:calc(max(0px, (100% - var(--wide)) / 2) + 16px + 2.5rem);top:var(--hz);pointer-events:none;transform-origin:50% 0;width:clamp(9rem,24vw,16rem);position:absolute}.f-shadow{filter:blur(5px);background:radial-gradient(50% 50%,#0000009e,#0000 72%);height:1.8rem;position:absolute;top:-.9rem;left:4%;right:-8%}.f-sculpt{filter:drop-shadow(0 1px #ffffff2e)drop-shadow(0 8px 14px #0000008c);width:100%;position:absolute;bottom:-.5rem;left:0}.f-sculpt .mk{background-color:#d4d6d8;background-image:repeating-linear-gradient(90deg,#ffffff0f 0 1px,#0000 1px 3px),linear-gradient(115deg,#fbfbfb 0%,#d9dbdd 26%,#8f9398 50%,#e9ebed 72%,#b3b7bb 100%);width:100%;display:block}.f-refl{opacity:.08;width:100%;position:absolute;top:.5rem;left:0;transform:scaleY(-.85);-webkit-mask-image:linear-gradient(#0000 40%,#000);mask-image:linear-gradient(#0000 40%,#000)}.f-refl .mk{filter:blur(2.5px);color:#f0f0f0;width:100%}@media (prefers-reduced-motion:no-preference){.f-grid{animation:3s linear infinite fmove}.f-glow{animation:10s ease-in-out infinite alternate breathe}.thesis{animation:.75s cubic-bezier(.2,.7,.2,1) both rise}.f-obj{animation:1.1s cubic-bezier(.2,.7,.2,1) .2s both reveal}@keyframes fmove{to{transform:translateY(var(--cell))}}@keyframes breathe{0%{opacity:.82}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes reveal{0%{opacity:0;transform:scale(.96)}}}@media (width<=560px){.hero{--hz:calc(100% - 10rem);--cell:40px;min-height:0}.hero>.inner{padding-block:1rem 14rem}.f-floor{--hfade:linear-gradient(to bottom, transparent 0, transparent 4%, #0006 10%, #000 22%);transform:rotateX(72deg)}.f-grid{background-image:linear-gradient(#969aa0bf 0 1px,#969aa04d 2px,#0000 3px),linear-gradient(90deg,#969aa099 1px,#0000 1px)}.f-stage{perspective:360px;-webkit-mask-image:radial-gradient(ellipse 110% 100% at 50% var(--hz), #000 55%, transparent 100%);mask-image:radial-gradient(ellipse 110% 100% at 50% var(--hz), #000 55%, transparent 100%)}.f-fade{background:linear-gradient(to bottom, transparent, var(--paper));height:3.5rem;top:auto}.top{gap:.75rem 2rem;min-height:0;padding-bottom:1rem}.thesis{padding-top:2.5rem}.thesis p{margin-top:1.5rem;font-size:1.0625rem}.f-obj{opacity:.6;width:4.5rem;right:10%}.f-glow{background:radial-gradient(ellipse 60% 5% at 80% var(--hz), rgba(var(--glow), .22), transparent 72%), radial-gradient(ellipse 100% 14% at 76% var(--hz), rgba(var(--glow), .09), transparent 74%)}.f-floor.lit{display:none}.f-refl .mk{filter:none}main .inner{gap:3.5rem;padding-block:3rem 2.5rem}}@media (pointer:coarse),(width<=640px){.top nav{gap:.25rem 1.1rem}.top nav a,footer nav a{align-items:center;min-height:44px;display:inline-flex}.mode{min-height:36px;padding-inline:.85rem}.filters button{min-height:40px;padding-inline:.95rem}.mailrow button{min-height:40px;padding-inline:1rem}.route a.go,.about a.mono,.thesis p a{padding-block:.4rem}footer .inner nav{gap:0 1.25rem}}main .inner{grid-template-columns:minmax(0,1fr);gap:4.5rem;padding-block:4rem 3rem;display:grid}main .inner>*{min-width:0}.col{max-width:var(--col)}.sec-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1rem;margin-bottom:1.25rem;display:flex}.sec-head h2{letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:600}.now{border-left:2px solid var(--ink);padding-left:1.25rem}.now dl{grid-template-columns:8rem 1fr;gap:.7rem 1.5rem;margin:0;display:grid}.now dt{font-family:var(--mono);color:var(--ink-2);padding-top:.15rem;font-size:.8125rem}.now dd{min-width:0;margin:0}.now .sig{color:var(--ink-2);align-items:center;gap:.6rem;margin-top:1.1rem;display:flex}.now .sig .mk{width:1.9rem;color:var(--ink)}@media (width<=560px){.now dl{grid-template-columns:1fr;gap:.15rem}.now dd{margin-bottom:.7rem}}.filters{flex-wrap:wrap;gap:.4rem;display:flex}.filters button{font:inherit;font-family:var(--mono);letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:999px;padding:.32rem .8rem;font-size:.75rem}.filters button:hover{color:var(--ink);border-color:var(--ink-2)}.filters button[aria-pressed=true]{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}.log-scroll{overflow-x:auto}table.log{border-collapse:collapse;width:100%;min-width:48rem}table.log th{text-align:left;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);border-bottom:1px solid var(--ink);padding:0 1.25rem .65rem 0;font-size:.6875rem;font-weight:500}table.log td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.95rem 1.25rem .95rem 0}table.log td.yr,table.log td.role,table.log td.st{font-family:var(--mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.8125rem}table.log td.name{white-space:nowrap;font-weight:600}table.log td.name a{text-decoration:none}table.log td.name a:hover{text-decoration:underline}table.log td.rem{color:var(--ink-2);max-width:27rem;font-size:.9375rem}.tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin-bottom:.2rem;font-size:.6875rem;display:block}.st span:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:.5rem;display:inline-block}.st .live{color:var(--live)}.st .build{color:var(--build)}.st .dormant{color:var(--dormant)}tr[hidden]{display:none}@media (width<=640px){table.log{min-width:0}table.log,table.log tbody{display:block}table.log thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}table.log tr{border-bottom:1px solid var(--rule);grid-template-columns:auto 1fr;grid-template-areas:"name name""yr st""role role""rem rem";gap:.2rem 1rem;padding:1rem 0;display:grid}table.log tr[hidden]{display:none}table.log td{border:0;padding:0;display:block}table.log td.name{white-space:normal;grid-area:name;font-size:1.125rem}table.log td.yr{color:var(--ink-2);grid-area:yr}table.log td.st{grid-area:st;justify-self:end}table.log td.role{color:var(--ink-2);white-space:normal;grid-area:role}table.log td.rem{grid-area:rem;max-width:none;margin-top:.35rem}}.duo{grid-template-columns:minmax(0,38rem) minmax(0,1fr);grid-template-areas:"about photo""contact photo";gap:4.5rem 3rem;display:grid}.duo .about{grid-area:about;min-width:0}.duo .contact{grid-area:contact;min-width:0}.portrait{grid-area:photo;place-self:start end;width:min(100%,26rem);margin:0}.portrait img{width:100%;height:auto;filter:var(--portrait-filter);display:block;-webkit-mask-image:radial-gradient(64% 80% at 50% 30%,#000 62%,#000000d9 76%,#00000080 88%,#0000002e 96%,#0000 100%);mask-image:radial-gradient(64% 80% at 50% 30%,#000 62%,#000000d9 76%,#00000080 88%,#0000002e 96%,#0000 100%)}@media (width<=760px){.duo{grid-template-columns:1fr;grid-template-areas:"about""photo""contact";gap:2.5rem}.portrait{justify-self:center;width:min(100%,17rem)}}.about p{margin:0 0 .9rem}.about p:last-child{margin:0}.routes{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem 2.5rem;display:grid}.route h3{margin:0 0 .35rem;font-size:1.0625rem;font-weight:600}.route p{color:var(--ink-2);margin:0 0 .6rem;font-size:.9375rem}.route a.go{font-family:var(--mono);border-bottom:1px solid var(--ink);font-size:.8125rem;text-decoration:none}.mailrow{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.75rem;display:flex}.mailrow code{font-family:var(--mono);user-select:all;font-size:.9375rem}.mailrow button{font:inherit;font-family:var(--mono);color:var(--ink);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:3px;padding:.3rem .7rem;font-size:.75rem}.colophon{border-top:1px solid var(--rule);color:var(--ink-2);align-items:center;gap:.9rem;padding-top:2rem;display:flex}.colophon .mk{width:2.4rem;color:var(--ink)}footer .inner{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;padding-block:1.25rem 2.5rem;display:flex}footer nav{flex-wrap:wrap;gap:1.1rem;display:flex}footer a{text-decoration:none}footer a:hover{color:var(--ink)}@media (width<=760px){footer .inner{text-align:center;flex-direction:column;align-items:center}footer nav{justify-content:center}}
