:root{--bg-0: #000000;--bg-1: #0b0a0f;--text: #f4f2ec;--text-dim: rgba(244, 242, 236, .62);--accent: #d8b878;--accent-soft: rgba(216, 184, 120, .16);--glass-bg: rgba(16, 14, 20, .55);--glass-border: rgba(255, 255, 255, .08);--glass-edge: rgba(255, 255, 255, .07);--font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, "Times New Roman", serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .18s;--dur-mid: .45s}*{box-sizing:border-box}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip-link{position:fixed;top:14px;left:14px;z-index:100;padding:12px 18px;border-radius:999px;background:var(--bg-1);border:1px solid var(--accent);color:var(--text);text-decoration:none;font-size:.9rem;transform:translateY(-260%);transition:transform var(--dur-fast) var(--ease-out)}.skip-link:focus-visible{transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2.6vh,24px);padding:24px;text-align:center}.hero__kicker{margin:0;font-size:clamp(.72rem,1.6vw,.82rem);font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--accent);opacity:.9}.hero__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(2.8rem,10vw,6.4rem);line-height:1.04;letter-spacing:.01em;color:var(--text);text-shadow:0 0 90px rgba(216,184,120,.18)}@supports (-webkit-background-clip: text) or (background-clip: text){.hero__title{background:linear-gradient(168deg,var(--text) 38%,var(--accent) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}}.hero__slogan{margin:0;max-width:34em;font-size:clamp(.98rem,2.4vw,1.15rem);color:var(--text-dim);letter-spacing:.04em}.hero__rule{display:flex;align-items:center;gap:12px;color:var(--accent)}.hero__rule:before,.hero__rule:after{content:"";width:clamp(48px,9vw,92px);height:1px;background:linear-gradient(90deg,transparent,var(--accent));opacity:.75}.hero__rule:after{background:linear-gradient(270deg,transparent,var(--accent))}.hero__rule .icon{width:13px;height:13px;filter:drop-shadow(0 0 6px rgba(216,184,120,.8));animation:spark-twinkle 3.6s ease-in-out infinite}@keyframes spark-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82) rotate(22deg)}}.hero__scroll{margin-top:clamp(10px,4vh,34px);display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;color:var(--accent);background:var(--glass-bg);border:1px solid rgba(216,184,120,.35);box-shadow:inset 0 1px 0 var(--glass-edge),0 0 24px #d8b8781f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease,box-shadow var(--dur-mid) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.hero__scroll:hover{color:var(--text);border-color:var(--accent);box-shadow:inset 0 1px 0 var(--glass-edge),0 0 34px #d8b8784d;transform:translateY(2px)}.hero__scroll .icon{width:20px;height:20px;animation:hero-bob 2.6s var(--ease-out) infinite}@keyframes hero-bob{0%,to{translate:0 -1px}50%{translate:0 4px}}.icon{width:1em;height:1em}.projects{max-width:1100px;margin:0 auto;padding:clamp(28px,6vh,72px) clamp(16px,4vw,32px) clamp(64px,10vh,120px)}.footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:clamp(36px,6vh,64px) 24px calc(28px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,transparent,rgba(11,10,15,.9));text-align:center}.footer__brand{margin:0;font-family:var(--font-display);font-size:1.15rem;letter-spacing:.04em;color:var(--text)}.footer__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px}.footer__top{margin:0}.footer__nav a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;color:var(--text-dim);text-decoration:none;font-size:.92rem;letter-spacing:.03em;border-radius:999px;transition:color var(--dur-fast) ease,background var(--dur-fast) ease}.footer__nav a:hover{color:var(--accent);background:#ffffff0a}.footer__note{margin:4px 0 0;font-size:.78rem;letter-spacing:.05em;color:var(--text-dim)}.notfound-page{overflow:hidden}.notfound{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.notfound__static{position:fixed;inset:-24px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E") repeat;animation:static-jitter .42s steps(4) 11}@keyframes static-jitter{0%{transform:translate(0)}25%{transform:translate(-18px,9px)}50%{transform:translate(12px,-14px)}75%{transform:translate(-7px,-6px)}to{transform:translate(0)}}.notfound__kicker{margin:0;font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:var(--accent)}.notfound__title{position:relative;margin:0;font-family:var(--font-display);font-size:clamp(6rem,26vw,15rem);line-height:1;font-weight:600;color:var(--text);text-shadow:0 0 80px rgba(216,184,120,.25)}.notfound__title:before,.notfound__title:after{content:attr(data-text);position:absolute;inset:0;mix-blend-mode:screen;pointer-events:none}.notfound__title:before{color:#ff46468c;animation:rgb-shift-a 3.2s steps(12) 1}.notfound__title:after{color:#3fe0c88c;animation:rgb-shift-b 2.7s steps(10) 1}@keyframes rgb-shift-a{0%,88%,to{transform:translate(0);opacity:0}90%{transform:translate(-6px,2px);opacity:1}94%{transform:translate(4px,-2px);opacity:1}}@keyframes rgb-shift-b{0%,86%,to{transform:translate(0);opacity:0}88%{transform:translate(6px,-2px);opacity:1}92%{transform:translate(-4px,3px);opacity:1}}.notfound__line{margin:0;max-width:30em;color:var(--text-dim)}.notfound__home{display:inline-flex;align-items:center;min-height:46px;margin-top:14px;padding:12px 22px;border-radius:999px;color:var(--text);text-decoration:none;background:var(--glass-bg);border:1px solid rgba(216,184,120,.4);box-shadow:inset 0 1px 0 var(--glass-edge);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-mid) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.notfound__home:hover{border-color:var(--accent);box-shadow:inset 0 1px 0 var(--glass-edge),0 8px 30px #d8b8782e;transform:translateY(-2px)}.egg-toast{position:fixed;left:50%;bottom:26px;z-index:90;transform:translate(-50%);padding:12px 20px;border-radius:999px;font-size:.9rem;letter-spacing:.03em;color:var(--text);background:var(--glass-bg);border:1px solid rgba(216,184,120,.45);box-shadow:inset 0 1px 0 var(--glass-edge),0 10px 40px #0009;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);animation:egg-toast-in 4.6s var(--ease-out) both}@keyframes egg-toast-in{0%{opacity:0;transform:translate(-50%,16px)}6%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,10px)}}.egg-comet{position:fixed;top:18vh;left:-12vw;z-index:89;width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px 3px #d8b878e6,-70px 12px 60px 4px #d8b87840;pointer-events:none;animation:egg-comet-fly 1.7s cubic-bezier(.3,0,.6,1) both}.egg-comet:after{content:"";position:absolute;right:2px;top:50%;width:130px;height:1.5px;transform:translateY(-50%);background:linear-gradient(270deg,rgba(216,184,120,.85),transparent)}@keyframes egg-comet-fly{0%{transform:translate(0);opacity:0}8%{opacity:1}to{transform:translate(124vw,22vh);opacity:.9}}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:clamp(18px,3.4vw,34px)}@media(min-width:880px){.cards{grid-template-columns:1fr 1fr}}.cards__item{display:grid;perspective:1600px}.card{position:relative;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;text-decoration:none;color:var(--text);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-edge),0 4px 14px #0000006b,0 22px 60px #00000080;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);transform-style:preserve-3d;transition:transform var(--dur-mid) var(--ease-out),border-color .3s ease,box-shadow var(--dur-mid) var(--ease-out)}@supports not (backdrop-filter: blur(20px)){.card{background:#0e0d12eb}}a.card:hover,a.card:focus-visible{border-color:var(--card-line, var(--glass-border));transform:translateY(-6px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));box-shadow:inset 0 1px 0 var(--glass-edge),0 8px 20px #00000080,0 34px 90px #0000009e,0 0 60px var(--card-glow, transparent)}.card.is-tilting{transition:transform .08s linear,border-color .3s ease,box-shadow var(--dur-mid) var(--ease-out)}a.card:active{transform:translateY(-2px) scale(.995)}.card:after{content:"";position:absolute;inset:0;z-index:3;background:radial-gradient(340px circle at var(--mx, 50%) var(--my, 30%),var(--card-soft, transparent),transparent 70%);opacity:0;transition:opacity var(--dur-mid) ease;pointer-events:none}a.card:hover:after,a.card:focus-visible:after{opacity:1}.card__media{position:relative;margin:0;aspect-ratio:3 / 2;overflow:hidden;background:linear-gradient(110deg,transparent 42%,rgba(244,242,236,.045) 50%,transparent 58%) no-repeat 0 0 / 220% 100%,#14121a;animation:skeleton-sweep 1.6s ease-in-out infinite}.card__media img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform 1.1s var(--ease-out)}@keyframes skeleton-sweep{0%{background-position:220% 0,0 0}to{background-position:-120% 0,0 0}}.card__media.is-loaded{animation:none}a.card:hover .card__media img,a.card:focus-visible .card__media img{transform:scale(1.02)}.card__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 30%);pointer-events:none}.card__gloss{position:absolute;inset:-30% -60%;z-index:2;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.1) 50%,transparent 60%);transform:translate(-130%);pointer-events:none}a.card:hover .card__gloss,a.card:focus-visible .card__gloss{animation:gloss-sweep .9s cubic-bezier(.33,0,.2,1)}@keyframes gloss-sweep{0%{transform:translate(-130%)}to{transform:translate(130%)}}.card__body{display:flex;flex-direction:column;gap:7px;padding:clamp(18px,2.6vw,26px) clamp(18px,2.8vw,28px) clamp(20px,2.8vw,28px)}.card__kicker{margin:0;font-size:.7rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--card-accent, var(--accent));opacity:.9}.card__title{margin:0;font-family:var(--font-display);font-size:clamp(1.45rem,3vw,1.85rem);font-weight:600;letter-spacing:.015em;line-height:1.15}.card__tagline{margin:0;font-size:.95rem;color:var(--text);opacity:.86}.card__desc{margin:2px 0 0;font-size:.88rem;line-height:1.6;color:var(--text-dim)}.card__cta{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:.92rem;font-weight:500;letter-spacing:.05em;color:var(--card-accent, var(--accent))}.card__cta .icon{width:17px;height:17px;transition:transform var(--dur-fast) var(--ease-out)}a.card:hover .card__cta .icon,a.card:focus-visible .card__cta .icon{transform:translate(4px)}.fx-vhs:hover .card__cta .icon{transform:translate(3px,-3px)}.card__badge{position:absolute;top:12px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:.72rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text);background:#0a090eb8;border:1px solid var(--card-line, rgba(255, 255, 255, .2));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.card__ember{width:6px;height:6px;border-radius:50%;background:var(--card-accent, var(--accent));box-shadow:0 0 8px var(--card-glow, var(--accent-soft));animation:ember-pulse 2.4s ease-in-out infinite}@keyframes ember-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}.card--frozen .card__media img{filter:saturate(.55) brightness(.86);transition:filter .6s ease,transform 1.1s var(--ease-out)}.card--frozen:hover .card__media img{filter:saturate(.8) brightness(.95)}.card--frozen .card__title{opacity:.92}.fx-neon:hover,.fx-neon:focus-visible{animation:neon-pulse 1.9s ease-in-out infinite}@keyframes neon-pulse{0%,to{box-shadow:inset 0 1px 0 var(--glass-edge),0 8px 20px #00000080,0 34px 90px #0000009e,0 0 42px var(--card-glow)}50%{box-shadow:inset 0 1px 0 var(--glass-edge),0 8px 20px #00000080,0 34px 90px #0000009e,0 0 78px var(--card-glow)}}.card__scanlines{position:absolute;inset:0;z-index:3;background:repeating-linear-gradient(180deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);opacity:0;transition:opacity var(--dur-fast) ease;pointer-events:none}.fx-vhs:hover .card__scanlines,.fx-vhs:focus-visible .card__scanlines{opacity:1;animation:scanlines-roll 6s linear infinite}@keyframes scanlines-roll{0%{transform:translateY(0)}to{transform:translateY(6px)}}.fx-vhs:hover .card__title,.fx-vhs:focus-visible .card__title{animation:vhs-jitter 2.8s steps(14) infinite}@keyframes vhs-jitter{0%,87%,to{text-shadow:none;transform:translate(0)}90%{text-shadow:-2px 0 rgba(255,70,70,.55),2px 0 rgba(63,224,200,.55);transform:translate(1px)}93%{text-shadow:2px 0 rgba(255,70,70,.45),-2px 0 rgba(63,224,200,.45);transform:translate(-1px)}}.fx-frost .card__media:before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(120% 90% at 50% 110%,rgba(74,222,128,.14),transparent 60%);opacity:.7;transition:opacity .6s ease;pointer-events:none}.fx-frost:hover .card__media:before{opacity:1;animation:frost-breathe 3.4s ease-in-out infinite alternate}@keyframes frost-breathe{0%{opacity:.65}to{opacity:1}}@media(hover:none){a.card:active{transform:scale(.985)}}@media(prefers-reduced-motion:reduce){.card,.card:hover,.card:focus-visible,.card__media,.card__media img,.card__ember,.card__scanlines,.fx-neon:hover,.fx-vhs:hover .card__title{animation:none!important;transition:none!important;transform:none!important}.card__gloss{display:none}}html{scroll-behavior:smooth}body{margin:0;min-height:100svh;background:radial-gradient(140% 100% at 50% -10%,var(--bg-1) 0%,var(--bg-0) 60%),var(--bg-0);color:var(--text);font-family:var(--font-ui);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}.scene{position:fixed;inset:0;z-index:0;pointer-events:none}.scene__glow{position:absolute;inset:-20% -30%;background:radial-gradient(44% 32% at 50% 30%,rgba(216,184,120,.17),transparent 70%),radial-gradient(72% 54% at 50% 20%,rgba(216,184,120,.09),transparent 75%),radial-gradient(30% 22% at 50% 36%,rgba(255,220,165,.07),transparent 70%);transform:translate3d(calc(var(--par-x, 0) * 1px),calc(var(--par-y, 0) * 1px),0);animation:scene-breathe 9s ease-in-out infinite alternate}@keyframes scene-breathe{0%{opacity:.8}to{opacity:1.15}}.scene__stars{position:absolute;inset:-300px;background-image:radial-gradient(1.3px 1.3px at 22px 34px,rgba(244,242,236,.5),transparent 100%),radial-gradient(1px 1px at 121px 92px,rgba(216,184,120,.42),transparent 100%),radial-gradient(1.6px 1.6px at 203px 151px,rgba(244,242,236,.3),transparent 100%),radial-gradient(1px 1px at 68px 187px,rgba(244,242,236,.38),transparent 100%),radial-gradient(1.2px 1.2px at 172px 41px,rgba(216,184,120,.3),transparent 100%);background-size:240px 240px;opacity:.75;animation:stars-drift 160s linear infinite}.scene__stars--far{inset:-420px;background-size:340px 340px;opacity:.42;animation:stars-drift-far 280s linear infinite}@keyframes stars-drift{0%{transform:translate3d(calc(var(--par-x, 0) * 2.2px),calc(var(--par-y, 0) * 2.2px),0) translate(0)}to{transform:translate3d(calc(var(--par-x, 0) * 2.2px),calc(var(--par-y, 0) * 2.2px),0) translate(-240px,-240px)}}@keyframes stars-drift-far{0%{transform:translate3d(calc(var(--par-x, 0) * 1.2px),calc(var(--par-y, 0) * 1.2px),0) translate(0)}to{transform:translate3d(calc(var(--par-x, 0) * 1.2px),calc(var(--par-y, 0) * 1.2px),0) translate(340px,340px)}}.scene__grain{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='128' height='128' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E") repeat}.hero,main,.footer{position:relative;z-index:1}.card:focus-visible{outline-color:var(--card-accent, var(--accent));outline-offset:4px}.section-head{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin-bottom:clamp(28px,5vh,52px)}.section-kicker{margin:0;font-size:.72rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);opacity:.85}.section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.7rem,4.4vw,2.5rem);font-weight:600;letter-spacing:.02em}.section-head:after{content:"";width:56px;height:1px;margin-top:6px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.7}html.js [data-reveal]{opacity:0}html.js [data-reveal].in{animation:rise .46s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 60ms)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}html.js-timeout [data-reveal]{opacity:1!important;transform:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.js [data-reveal]{opacity:1;transform:none}.egg-toast{animation:none!important}}
