:root{--font-display: 'Outfit',system-ui,sans-serif;--font-body: 'Outfit',system-ui,sans-serif;--font-sans: var(--font-body);--font-mono: 'JetBrains Mono',ui-monospace,monospace;--bg: #0a0a0a;--text: #f5f5f5;--accent: #f5b942;--cyan: #22d3ee;--bg-elevated: color-mix(in oklab,var(--bg) 92%,var(--text));--bg-surface: color-mix(in oklab,var(--bg) 86%,var(--text));--bg-muted: color-mix(in oklab,var(--bg) 78%,var(--text));--border: color-mix(in oklab,var(--text) 8%,transparent);--border-strong: color-mix(in oklab,var(--text) 14%,transparent);--border-hover: color-mix(in oklab,var(--text) 35%,transparent);--text-muted: color-mix(in oklab,var(--text) 62%,var(--bg));--text-dim: color-mix(in oklab,var(--text) 72%,var(--bg));--accent-hover: oklch(from var(--accent) calc(clamp(0.12,l + 0.08,0.92)) c h);--accent-ink: contrast-color(var(--accent));--accent-soft: color-mix(in oklab,var(--accent) 10%,transparent);--accent-mid: color-mix(in oklab,var(--accent) 22%,transparent);--accent-glow: color-mix(in oklab,var(--accent) 7%,transparent);--cyan-hover: oklch(from var(--cyan) calc(clamp(0.12,l + 0.1,0.92)) c h);--cyan-ink: contrast-color(var(--cyan));--cyan-soft: color-mix(in oklab,var(--cyan) 10%,transparent);--cyan-mid: color-mix(in oklab,var(--cyan) 22%,transparent);--cyan-glow: color-mix(in oklab,var(--cyan) 8%,transparent);--focus-ring: color-mix(in oklab,var(--accent) 15%,transparent);--focus-ring-cyan: color-mix(in oklab,var(--cyan) 15%,transparent);--header-bg: color-mix(in oklab,var(--bg) 78%,transparent);--header-bg-strong: color-mix(in oklab,var(--bg) 96%,transparent);--overlay: color-mix(in oklab,var(--bg) 65%,transparent);--overlay-strong: color-mix(in oklab,var(--bg) 92%,transparent);--scrim: color-mix(in oklab,var(--bg) 75%,transparent);--hairline: color-mix(in oklab,var(--text) 3%,transparent);--wash: color-mix(in oklab,var(--text) 4%,transparent);--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-pill: 999px;--container: 1180px;--header-h: 72px;--ease: cubic-bezier(0.22,1,0.36,1);--shadow: 0 24px 60px color-mix(in oklab,black 45%,transparent);}*,*::before,*::after{box-sizing: border-box;margin: 0;padding: 0;}html{scroll-behavior: smooth;-webkit-text-size-adjust: 100%;}body{font-family: var(--font-body);background: var(--bg);color: var(--text);line-height: 1.6;min-height: 100vh;overflow-x: hidden;-webkit-font-smoothing: antialiased;}h1,h2,h3,h4,.section-title,.logo,.jpg-logo,.dev-logo{font-family: var(--font-display);}.brand-mark{display: inline-flex;align-items: center;gap: 0.55rem;}.brand-logo{width: 36px;height: 36px;object-fit: contain;border-radius: 6px;}.brand-text{font-weight: 700;letter-spacing: -0.02em;}img{max-width: 100%;display: block;height: auto;}a{color: inherit;text-decoration: none;}button,input,textarea,select{font: inherit;color: inherit;}ul,ol{list-style: none;}.container{width: min(100% - 2.5rem,var(--container));margin-inline: auto;}.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0,0,0,0);border: 0;}.skip-link{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0,0,0,0);white-space: nowrap;border: 0;z-index: 10000;}.skip-link:focus-visible{left: 1rem;top: 1rem;width: auto;height: auto;margin: 0;padding: 0.75rem 1rem;overflow: visible;clip: auto;white-space: normal;background: var(--accent);color: var(--accent-ink);}.btn{display: inline-flex;align-items: center;justify-content: center;gap: 0.5rem;padding: 0.8rem 1.35rem;border-radius: var(--radius-sm);border: 1px solid transparent;font-weight: 600;font-size: 0.95rem;letter-spacing: 0.01em;cursor: pointer;transition: background 0.25s var(--ease),border-color 0.25s var(--ease),color 0.25s var(--ease),transform 0.25s var(--ease),box-shadow 0.25s var(--ease);white-space: nowrap;}.btn:hover{transform: translateY(-1px);}.btn:active{transform: translateY(0);}.btn-accent{background: var(--accent);color: var(--accent-ink);}.btn-accent:hover{background: var(--accent-hover);color: contrast-color(var(--accent-hover));}.btn-cyan{background: var(--cyan);color: var(--cyan-ink);}.btn-cyan:hover{background: var(--cyan-hover);color: contrast-color(var(--cyan-hover));}.btn-ghost{background: transparent;border-color: var(--border-strong);color: var(--text);}.btn-ghost:hover{border-color: var(--border-hover);background: var(--wash);}.btn-outline-accent{background: transparent;border-color: var(--accent);color: var(--accent);}.btn-outline-accent:hover{background: var(--accent-soft);}.btn-outline-cyan{background: transparent;border-color: var(--cyan);color: var(--cyan);}.btn-outline-cyan:hover{background: var(--cyan-soft);}.btn-full{width: 100%;}.btn-icon{width: 2.5rem;height: 2.5rem;min-width: 2.5rem;min-height: 2.5rem;padding: 0;flex-shrink: 0;}.btn-icon:hover,.btn-icon:active,.mobile-toggle:hover,.mobile-toggle:active{transform: none;}.material-symbols-outlined{font-family: 'Material Symbols Outlined',sans-serif;font-weight: normal;font-style: normal;font-size: 1.35rem;line-height: 1;letter-spacing: normal;text-transform: none;display: inline-block;white-space: nowrap;word-wrap: normal;direction: ltr;-webkit-font-smoothing: antialiased;font-variation-settings: 'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;}.header-cta{position: relative;}.header-cta .header-cta-icon{display: none;width: 1.15rem;height: 1.15rem;flex-shrink: 0;}.header-cta .header-cta-label{display: inline;}.mobile-toggle{width: 2.5rem;height: 2.5rem;min-width: 2.5rem;min-height: 2.5rem;padding: 0;margin: 0;box-sizing: border-box;flex-shrink: 0;place-items: center;position: relative;color: var(--text,#f5f5f5);background: transparent;border: 1px solid transparent;cursor: pointer;}.burger{display: block;width: 18px;height: 14px;position: relative;margin: 0;background: none;box-shadow: none;}.burger > span{display: block;position: absolute;left: 0;width: 18px;height: 2px;border-radius: 1px;background: currentColor;transition: transform 0.25s var(--ease,ease),opacity 0.2s ease,top 0.25s var(--ease,ease);}.burger > span:nth-child(1){top: 0;}.burger > span:nth-child(2){top: 6px;}.burger > span:nth-child(3){top: 12px;}.mobile-toggle.is-open .burger > span:nth-child(1),.mobile-toggle[aria-expanded="true"] .burger > span:nth-child(1){top: 6px;transform: rotate(45deg);}.mobile-toggle.is-open .burger > span:nth-child(2),.mobile-toggle[aria-expanded="true"] .burger > span:nth-child(2){opacity: 0;}.mobile-toggle.is-open .burger > span:nth-child(3),.mobile-toggle[aria-expanded="true"] .burger > span:nth-child(3){top: 6px;transform: rotate(-45deg);}@media (max-width: 768px){.header-cta{width: 2.5rem;height: 2.5rem;min-width: 2.5rem;padding: 0;gap: 0;}.header-cta .header-cta-label{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0,0,0,0);white-space: nowrap;border: 0;}.header-cta .header-cta-icon{display: inline-block;}.jpg-header-actions .header-cta{display: none !important;}}.mobile-nav{margin: 0;border: none;z-index: 190;display: none;flex-direction: column;background: transparent;color: var(--text,#f5f5f5);}.mobile-nav:popover-open,.mobile-nav[data-open]{display: flex;}.mobile-nav:not(:popover-open):not([data-open]){display: none;}.mobile-nav ul{list-style: none;margin: 0;padding: 0;display: flex;flex-direction: column;gap: 0.75rem;text-align: center;}.mobile-nav a{display: block;padding: 0.5rem 0.4rem;color: var(--text,#f5f5f5);font-size: clamp(1.35rem,5vw,1.75rem);font-weight: 700;text-align: center;transition: color 0.2s;}.mobile-nav a:hover,.mobile-nav a.active,.mobile-nav a.is-active{color: var(--accent,#f5b942);background: transparent;}@media (max-width: 768px){nav#mobile-nav:popover-open,.mobile-nav:popover-open{background: transparent;border: unset;padding-top: 5.1rem;width: 100%;height: 100%;max-width: none;max-height: none;inset: unset;display: flex;justify-content: center;align-items: center;pointer-events: none;box-shadow: none;color: var(--text,#f5f5f5);}header.site-header:has(nav.mobile-nav:popover-open) > .container,header.site-header:has(nav.mobile-nav:popover-open) > .site-header-inner{height: var(--header-h);border-bottom: 1px solid var(--border);flex-shrink: 0;}header.site-header:has(nav.mobile-nav:popover-open){position: fixed;top: 0;left: 0;right: 0;bottom: 0;height: 100dvh;display: flex;flex-direction: column;border: unset;backdrop-filter: blur(16px);background: var(--header-bg);z-index: 300;}.mobile-nav-top{display: none !important;}nav#mobile-nav:popover-open > *,.mobile-nav:popover-open > *{pointer-events: all;}.mobile-nav{padding: unset !important;}}.badge{display: inline-flex;align-items: center;gap: 0.4rem;padding: 0.35rem 0.85rem;border-radius: var(--radius-pill);font-size: 0.78rem;font-weight: 500;border: 1px solid var(--border-strong);background: var(--overlay);color: var(--accent);}.badge::before{content: '';width: 6px;height: 6px;border-radius: 50%;background: currentColor;box-shadow: 0 0 8px currentColor;}.badge-cyan{color: var(--cyan);}.section{padding: clamp(4rem,8vw,6.5rem) 0;}.section-head{display: flex;align-items: flex-end;justify-content: space-between;gap: 1.5rem;margin-bottom: 2.25rem;flex-wrap: wrap;}.section-kicker{font-size: 0.75rem;letter-spacing: 0.14em;text-transform: uppercase;color: var(--accent);font-weight: 600;margin-bottom: 0.55rem;}.section-kicker.cyan{color: var(--cyan);}.section-title{font-size: clamp(1.75rem,3.5vw,2.5rem);font-weight: 700;letter-spacing: -0.02em;line-height: 1.15;}.section-desc{color: var(--text-muted);max-width: 42ch;margin-top: 0.65rem;font-size: 1rem;}.section-link{color: var(--accent);font-weight: 600;font-size: 0.95rem;display: inline-flex;align-items: center;gap: 0.35rem;transition: gap 0.25s var(--ease),color 0.2s;}.section-link:hover{gap: 0.55rem;color: var(--accent-hover);}.section-link.cyan{color: var(--cyan);}.section-link.cyan:hover{color: var(--cyan-hover);}.form-grid{display: grid;gap: 1rem;}.form-row{display: grid;grid-template-columns: 1fr 1fr;gap: 1rem;}.field label{display: block;font-size: 0.72rem;letter-spacing: 0.1em;text-transform: uppercase;color: var(--text-dim);margin-bottom: 0.45rem;font-weight: 600;}.field input,.field textarea,.field select{width: 100%;background: var(--bg-elevated);border: 1px solid var(--border-strong);border-radius: var(--radius-sm);padding: 0.85rem 1rem;outline: none;transition: border-color 0.2s,box-shadow 0.2s;}.field input:focus,.field textarea:focus,.field select:focus{border-color: var(--accent);box-shadow: 0 0 0 3px var(--focus-ring);}.field textarea{min-height: 140px;resize: vertical;}.field select{appearance: none;background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23a3a3a3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat: no-repeat;background-position: right 1rem center;padding-right: 2.5rem;}.tag{display: inline-flex;padding: 0.2rem 0.55rem;border-radius: 4px;font-size: 0.72rem;font-weight: 600;background: var(--wash);color: var(--text-muted);border: 1px solid var(--border);}.tag-cyan{color: var(--cyan);border-color: color-mix(in oklab,var(--cyan) 25%,transparent);background: var(--cyan-soft);}.reveal{opacity: 0;transform: translateY(18px);transition: opacity 0.7s var(--ease),transform 0.7s var(--ease);}.reveal.visible{opacity: 1;transform: none;}@media (max-width: 480px){.jpg-gallery.reveal{opacity: 1;transform: none;}}@media (max-width: 768px){.form-row{grid-template-columns: 1fr;}.section-head{align-items: flex-start;flex-direction: column;}}.portal-error{min-height: calc(100vh - var(--header-h) - 8rem);display: flex;align-items: center;}.portal-error .container{max-width: 640px;}.portal-error-code{font-size: clamp(3rem,10vw,5rem);font-weight: 800;line-height: 1;letter-spacing: -0.04em;color: var(--accent);margin: 0 0 0.75rem;}.portal-error-title{font-size: clamp(1.75rem,4vw,2.5rem);margin: 0 0 0.75rem;}.portal-error-message{color: var(--text-muted);margin: 0 0 1.5rem;line-height: 1.6;}.portal-error-actions{display: flex;gap: 0.75rem;flex-wrap: wrap;}.desktop-nav a.is-active,.desktop-nav a.active,.jpg-nav a.is-active,.jpg-nav a.active,.dev-nav a.is-active,.dev-nav a.active,.nav a.is-active,.nav a.active{color: var(--accent);}