*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;tab-size:4}html,body{height:100%}body{line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{padding:0;list-style:none}:focus{outline:none}body>div{isolation:isolate}:root{--violet-50:#f4eefc;--violet-100:#e4d6f9;--violet-200:#cdb3f3;--violet-300:#b089ec;--violet-400:#9360e3;--violet-500:#7b3fd6;--violet-600:#6830bf;--violet-700:#54279d;--violet-800:#402078;--violet-900:#2b1752;--violet-950:#170b2e;--neutral-0:#fff;--neutral-100:#f4f2f7;--neutral-300:#c9c3d4;--neutral-500:#8c849b;--neutral-700:#4e4860;--neutral-900:#1b1724;--neutral-1000:#0a0610;--magenta-500:#e84393;--ink-1000:#08050f;--font-display:"Geist Variable", system-ui, sans-serif;--font-sans:"Inter Tight Variable", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:1.75rem;--font-size-3xl:2.5rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.15;--line-height-normal:1.5;--line-height-relaxed:1.7;--letter-spacing-tight:-.015em;--letter-spacing-normal:0;--letter-spacing-wide:.04em;--letter-spacing-display:-.02em;--font-size-display-xs:clamp(2rem, 3vw + 1rem, 2.5rem);--font-size-display-sm:clamp(2.5rem, 4vw + 1rem, 3.5rem);--font-size-display-md:clamp(3.5rem, 6vw + 1rem, 5rem);--font-size-display-lg:clamp(5rem, 9vw + 1rem, 8rem);--font-size-manifesto:clamp(2rem, 4.5vw + 1rem, 4.5rem);--font-size-manifesto-accent:clamp(2.75rem, 7vw + 1rem, 7rem);--font-weight-hairline:200;--font-weight-black:800;--page-padding-inline:clamp(2rem, 6vw, 6rem);--section-padding-block:clamp(4rem, 10vh, 8rem);--stack-tight:1rem;--stack:clamp(1.25rem, .5rem + 1.5vw, 1.75rem);--stack-loose:var(--space-10);--stack-section:clamp(2rem, 1rem + 2vw, 3rem);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #00000073, 0 0 0 1px #ffffff05;--shadow-md:0 4px 12px #0000008c, 0 1px 3px #0006, 0 0 0 1px #ffffff08;--shadow-lg:0 16px 40px #000000a6, 0 4px 12px #0006, 0 0 0 1px #ffffff0a;--shadow-glow:0 0 24px #9360e359, 0 0 48px #9360e326;--transition-fast:.12s;--transition-base:.22s;--transition-slow:.42s;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-emphasized:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-shutter:cubic-bezier(.65, 0, .35, 1);--motion-duration-instant:80ms;--motion-duration-fast:.2s;--motion-duration-base:.4s;--motion-duration-slow:.8s;--motion-duration-page:.6s;--brush-swipe-duration:2.6s;--brush-stagger:1.95s;--brush-ease:var(--ease-standard);--motion-stagger-line:80ms;--motion-stagger-card:60ms;--motion-bloom-radius:600px;--motion-bloom-opacity:.06;--z-base:0;--z-elevated:10;--z-overlay:100;--z-modal:1000;--z-toast:10000;--z-cursor:9999;--bp-sm:640px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px}:root,:root[data-theme=dark]{--color-bg:#120a1f;--color-surface:var(--violet-900);--color-surface-elevated:var(--violet-800);--color-text:var(--neutral-100);--color-text-muted:var(--neutral-300);--color-text-subtle:var(--neutral-500);--color-accent:var(--violet-300);--color-accent-hover:var(--violet-200);--color-border:var(--violet-800);--color-focus-ring:var(--violet-300);--color-bg-deep:var(--ink-1000);--color-emphasis:var(--magenta-500);--color-ink-on-emphasis:var(--neutral-0);--color-accent-magenta:var(--magenta-500);--star-near:#f5f0c8;--star-far:#b4af91;--half-warm-accent:#f0a868;--half-warm-accent-hover:#ffc98f;--half-cool-accent:#7fc4ff;--half-cool-accent-hover:#adf;--half-wash-opacity:.45;--half-shine-color:#fffffff2;--half-shine-blend:screen;--half-subtitle-tint-base:50%;--half-subtitle-tint-hover:75%}:root[data-theme=lunar]{--color-bg:#0a0d1a;--color-surface:#14182a;--color-surface-elevated:#1a1f33;--color-text:#c9d1e3;--color-text-muted:#8893a8;--color-text-subtle:#5a6478;--color-accent:#b8c0db;--color-accent-hover:#d4dcf0;--color-accent-magenta:#d63a8a;--color-border:#1f2438;--color-focus-ring:#d4dcf0;--color-bg-deep:#050709;--color-emphasis:#d63a8a;--color-ink-on-emphasis:#c9d1e3;--star-near:#dce6ff;--star-far:#a0aac8;--half-warm-accent:#d6b48a;--half-warm-accent-hover:#ecd0aa;--half-cool-accent:#9db4e0;--half-cool-accent-hover:#c2d2f5;--half-wash-opacity:.32;--half-shine-color:#dce6ffeb;--half-shine-blend:screen;--half-subtitle-tint-base:50%;--half-subtitle-tint-hover:75%}html{scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--color-bg)}html,body{transition:background-color var(--transition-base) var(--ease-standard), color var(--transition-base) var(--ease-standard)}body{color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-regular)}html:before{content:"";pointer-events:none;z-index:-1;opacity:.012;background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:0}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px;border-radius:var(--radius-xs)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mono-caption{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide)}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}::view-transition-old(root){animation-duration:var(--transition-slow);animation-timing-function:var(--ease-emphasized)}::view-transition-new(root){animation-duration:var(--transition-slow);animation-timing-function:var(--ease-emphasized)}::view-transition-old(root){animation-name:fade-out}::view-transition-new(root){animation-name:fade-in}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[data-reveal]{opacity:0;transition:opacity .9s var(--ease-emphasized), transform .9s var(--ease-emphasized);transform:translateY(28px)}[data-reveal][data-revealed]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{transition:none;opacity:1!important;transform:none!important}}:root[data-landing-animate] body{animation:1.2s ease-out landing-fade-in}@keyframes landing-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){:root[data-landing-animate] body{animation:none}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-ext-wght-normal.B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-wght-normal.DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}[data-reveal-line]{position:relative}[data-reveal-line]:after{content:"";background:var(--color-accent);transform-origin:0;width:100%;height:2px;transition:transform .6s var(--ease-emphasized);position:absolute;bottom:-4px;left:0;transform:scaleX(0)}[data-reveal-line][data-revealed-line]:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){[data-reveal-line]:after{transition:none}}@media print{@page{size:a4;margin:1.5cm}body{font-family:var(--font-sans);font-size:10pt;line-height:1.4;color:#000!important;background:#fff!important}.theme-toggle,nav,.scroll-down,.back-link,[data-print-hide],.moon-line,.landing,.landing__split{display:none!important}body:before{content:"Marcel — web developer";font-family:var(--font-display);border-bottom:2pt solid #000;margin-bottom:8pt;padding-bottom:4pt;font-size:32pt;font-weight:700;display:block}.manifesto{break-inside:avoid;margin:12pt 0}.manifesto p{font-family:var(--font-display);font-size:10pt;line-height:1.4}.brush:after{display:none!important}.grid-section__grid,.card{break-inside:avoid;display:block!important}.card{border-top:.5pt solid #888;margin-bottom:8pt;padding:4pt 0;box-shadow:none!important;transform:none!important}.card__preview,.card__overlay,.card__chrome-wrap{display:none!important}.card__title{font-size:12pt;font-weight:700}.card__description{font-size:9pt}.card__badges{display:inline-block}.tech-badge{margin-right:6pt;padding:0;font-size:8pt;color:#444!important;background:0 0!important}.annotation{display:none!important}.contact{border-top:1pt solid #000;margin-top:16pt;padding-top:8pt}.about,.contact,.grid-section{break-inside:avoid}body:after{content:"Vytisknuto z treefolk.pages.dev";font-family:var(--font-mono);color:#888;font-size:7pt;position:fixed;bottom:.5cm;right:1cm}}.star-field.svelte-1xwdayq{pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;inset:0}.star-field-static.svelte-1xwdayq{pointer-events:none;z-index:-1;background-image:radial-gradient(circle at 8% 12%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 22% 35%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 38% 18%, var(--color-accent-magenta) 0%, transparent 1px), radial-gradient(circle at 55% 42%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 70% 8%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 82% 28%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 92% 55%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 15% 62%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 45% 75%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 67% 68%, var(--color-accent-magenta) 0%, transparent 1px), radial-gradient(circle at 30% 88%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 78% 82%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 5% 78%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 52% 92%, var(--color-accent) 0%, transparent 1px), radial-gradient(circle at 88% 15%, var(--color-accent) 0%, transparent 1px);opacity:.12;background-repeat:no-repeat;background-size:100vw 100vh;position:fixed;inset:0}
