:root{--bone: #f4f1ea;--bone-deep: #ece7dc;--ink: #16140f;--ink-soft: #3a3730;--amber: #c8862b;--amber-bright: #e0a040;--line: rgba(22, 20, 15, .12);--serif: "Fraunces", Georgia, serif;--grotesk: "Familjen Grotesk", system-ui, sans-serif;--bg: var(--bone);--bg-deep: var(--bone-deep);--fg: var(--ink);--fg-soft: var(--ink-soft);--line-on-bg: rgba(22, 20, 15, .12)}body.inverted{--bg: var(--ink);--bg-deep: #0d0c08;--fg: var(--bone);--fg-soft: #b8b3a6;--line-on-bg: rgba(244, 241, 234, .14)}body,.contact,.project,.stats,footer,.topbar nav a{transition:background-color 1.5s cubic-bezier(.7,0,.2,1),color 1.5s cubic-bezier(.7,0,.2,1),border-color 1.5s cubic-bezier(.7,0,.2,1)}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--grotesk);overflow-x:hidden}body{-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}::selection{background:var(--amber);color:var(--bg)}:focus{outline:none}:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:2px}button:focus-visible,a:focus-visible{outline-offset:3px}body:after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#scene{position:fixed;inset:0;z-index:0;pointer-events:none}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9500;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s}.cursor-dot{width:6px;height:6px;background:var(--amber)}.cursor-ring{width:34px;height:34px;border:1px solid var(--amber);transition:width .25s,height .25s,background .25s,opacity .3s}.cursor-ring.hot{width:60px;height:60px;background:#c8862b14}body.cursor-on,body.cursor-on a,body.cursor-on button,body.cursor-on .project .visual,body.cursor-on [data-art]{cursor:none}@media (pointer: coarse){.cursor-dot,.cursor-ring{display:none!important}}#sound{position:fixed;right:24px;bottom:24px;z-index:60;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#f4f1ea8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .3s}#sound:hover{border-color:var(--amber)}#sound .bar{width:2px;margin:0 1.5px;background:var(--ink-soft);height:7px;border-radius:1px;transition:background .3s}#sound.on .bar{background:var(--amber)}#sound.on .b1{animation:eq .9s ease-in-out infinite}#sound.on .b2{animation:eq .9s ease-in-out .15s infinite}#sound.on .b3{animation:eq .9s ease-in-out .3s infinite}@keyframes eq{0%,to{height:6px}50%{height:16px}}@media (prefers-reduced-motion: reduce){#sound.on .bar{animation:none}}.topbar nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.7,0,.2,1)}.topbar nav a:hover:after{transform:scaleX(1);transform-origin:left}.project .visual{transition:box-shadow .55s ease,border-color .4s ease}.project:hover .visual{box-shadow:0 30px 70px -40px #16140f59;border-color:#c8862b80}.magnetic{display:inline-block;will-change:transform}.wrap{position:relative;z-index:2}#preloader{position:fixed;inset:0;z-index:9000;background:var(--bone);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}#preloader.hide{animation:plhide .9s cubic-bezier(.7,0,.2,1) forwards}#preloader .pl-logo{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,9vw,5.5rem);letter-spacing:.05em;color:var(--ink)}#preloader .pl-logo span{color:var(--amber)}#preloader .pl-bar{width:min(240px,52vw);height:1px;background:var(--line);position:relative;overflow:hidden}#preloader .pl-bar i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--amber)}#preloader .pl-num{font-family:var(--grotesk);font-size:13px;letter-spacing:.24em;color:var(--ink-soft)}#preloader .pl-num i{font-style:normal;opacity:.5}@keyframes plhide{to{opacity:0;visibility:hidden;pointer-events:none}}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:28px 6vw;mix-blend-mode:difference;color:#fff}.topbar .logo{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:.02em}.topbar nav{display:flex;gap:34px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.topbar nav a{position:relative;opacity:.8;transition:opacity .3s}.topbar nav a:hover{opacity:1}.progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--amber);z-index:60}.hero{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:90px 6vw 110px;position:relative}.hero .eyebrow{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin-bottom:22px}.hero h1{font-family:var(--serif);font-weight:300;line-height:.94;font-size:clamp(2.8rem,min(10vw,14vh),9.5rem);letter-spacing:-.02em}.hero h1 .line{display:block;overflow:hidden}.hero h1 .line span{display:block;transform:translateY(0)}.hero h1 em{font-style:italic;color:var(--amber);font-weight:400}.hero .sub{margin-top:28px;max-width:520px;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.55;color:var(--ink-soft)}.scroll-hint{position:absolute;bottom:40px;left:6vw;z-index:10;font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:12px;opacity:.7}.scroll-hint .bar{width:50px;height:1px;background:var(--ink);transform-origin:left;animation:slide 2s infinite}@keyframes slide{0%{transform:scaleX(0)}50%{transform:scaleX(1)}to{transform:scaleX(0);transform-origin:right}}section{position:relative;padding:18vh 6vw}.reveal{opacity:1;transform:none}.js-on .reveal{opacity:0;transform:translateY(40px)}.js-on .hero h1 .line span{transform:translateY(110%)}.js-on #heroEyebrow,.js-on #heroSub,.js-on #scrollHint{opacity:0}.section-num{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--amber);margin-bottom:18px;display:block}.section-title{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5.5vw,4.6rem);line-height:1;letter-spacing:-.02em;margin-bottom:8vh}.section-title em{font-style:italic;color:var(--amber)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start}.about-grid p{font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.7;color:var(--ink-soft)}.about-grid p+p{margin-top:24px}.stats{display:grid;gap:0;border-top:1px solid var(--line)}.stat{display:flex;justify-content:space-between;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}.stat .big{font-family:var(--serif);font-size:clamp(2.4rem,4vw,3.4rem);font-weight:300;letter-spacing:-.02em}.stat .lbl{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);max-width:200px;text-align:right}.project{display:grid;grid-template-columns:1.05fr .95fr;gap:6vw;padding:10vh 0;border-top:1px solid var(--line);align-items:start}.project:last-child{border-bottom:1px solid var(--line)}.project-body{display:flex;flex-direction:column}.project .role{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:18px}.project h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);line-height:1.02;letter-spacing:-.02em;margin-bottom:20px}.project .summary{font-size:clamp(1rem,1.1vw,1.12rem);line-height:1.6;color:var(--ink);margin-bottom:26px}.project .highlights{list-style:none;padding:0;margin:0 0 28px;border-top:1px solid var(--line)}.project .highlights li{position:relative;padding:14px 0 14px 22px;border-bottom:1px solid var(--line);font-size:.96rem;line-height:1.55;color:var(--ink-soft)}.project .highlights li:before{content:"";position:absolute;left:0;top:22px;width:10px;height:1px;background:var(--amber)}.project .stack{display:flex;flex-wrap:wrap;gap:8px}.project .stack span{font-size:11.5px;letter-spacing:.04em;padding:6px 12px;border:1px solid var(--line);border-radius:40px;color:var(--ink-soft);white-space:nowrap}.project .visual{aspect-ratio:4 / 3;border:1px solid var(--line-on-bg);position:sticky;top:14vh;overflow:hidden;background:linear-gradient(135deg,var(--bg-deep),var(--bg))}.project .visual .float{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:clamp(4rem,9vw,8rem);font-weight:300;color:#16140f0f;will-change:transform}.project .visual .float.art{display:block;inset:-10% auto auto 0;width:100%;height:120%;z-index:1}.project .visual .float.art svg{width:100%;height:100%;display:block}.project .visual .metric{z-index:3}@keyframes artpulse{0%,to{opacity:.5}50%{opacity:1}}.float.art .pulse{animation:artpulse 3.4s ease-in-out infinite}.float.art .pulse.d2{animation-delay:.9s}.float.art .pulse.d3{animation-delay:1.8s}@media (prefers-reduced-motion: reduce){.float.art .pulse{animation:none}}.project .visual .metric{position:absolute;bottom:24px;left:24px;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);color:var(--amber)}.project .visual .metric small{display:block;font-family:var(--grotesk);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}.contact{min-height:90vh;display:flex;flex-direction:column;justify-content:center}.contact h2{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,9vw,8rem);line-height:.95;letter-spacing:-.02em}.contact h2 em{font-style:italic;color:var(--amber)}.contact .links{display:flex;gap:40px;margin-top:60px;flex-wrap:wrap}.contact .links a{font-size:15px;letter-spacing:.06em;text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid var(--fg);transition:.4s}.contact .links a:hover{color:var(--amber);border-color:var(--amber);padding-left:8px}footer{padding:40px 6vw;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-soft);border-top:1px solid var(--line-on-bg)}@media (max-width: 820px){.topbar{padding:20px 6vw}.topbar nav{display:none}.about-grid,.project{grid-template-columns:1fr;gap:40px}.project .visual{order:-1}.stat .lbl{max-width:100%;text-align:left}section{padding:10vh 6vw}.hero{padding:80px 6vw 90px}.contact .links{gap:24px;flex-wrap:wrap}footer{flex-direction:column;gap:12px;font-size:11px}#sound{right:16px;bottom:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.scroll-hint .bar,#preloader{animation:none}}
