html{scroll-behavior:smooth}body{min-height:100%;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(18,19,22,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(18,19,22,.04) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 95%);-webkit-mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 95%)}.spotlight{position:fixed;width:540px;height:540px;left:0;top:0;border-radius:50%;pointer-events:none;z-index:1;transform:translate3d(-50%,-50%,0);background:radial-gradient(circle,#12131612,#12131600 65%);opacity:0;transition:opacity .4s ease;will-change:transform}.spotlight.is-on{opacity:1}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:var(--accent);z-index:200}main,header,footer{position:relative;z-index:2}.site-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,4vw,54px);background:#fafafab8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-soft)}.site-nav__brand{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--brand)}.site-nav__mark{font-family:var(--font-display);font-size:1.35rem;letter-spacing:1px;text-transform:uppercase}.site-nav__sub{font-size:.72rem;font-weight:600;letter-spacing:.35px;color:var(--text-mute)}.site-nav__links{display:flex;align-items:center;gap:6px}.site-nav__links a{text-decoration:none;color:var(--text-dim);font-size:.82rem;font-weight:600;padding:.42rem .9rem;border-radius:var(--r-pill);transition:background .2s ease,color .2s ease}.site-nav__links a:hover{background:var(--fill-mid);color:var(--brand)}.site-nav__links a.is-cta{background:var(--accent);color:var(--accent-contrast)}.site-nav__links a.is-cta:hover{background:var(--accent-strong)}@media (max-width: 640px){.site-nav__links a:not(.is-cta){display:none}}.hero{position:relative;min-height:92vh;display:grid;place-items:center;text-align:center;padding:80px 20px 40px;overflow:hidden}#heroCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9}.hero__inner{position:relative;z-index:2;max-width:960px;pointer-events:none}.hero__eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--text-mute);padding:.4rem 1rem;border:1px solid var(--border-mid);border-radius:var(--r-pill);background:var(--glass);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.hero__title{font-family:var(--font-display);text-transform:uppercase;color:var(--brand);margin:.35em 0 .12em;line-height:.92;letter-spacing:1px;font-size:clamp(2.6rem,11vw,8.2rem)}.hero__title .ln{display:block;overflow:hidden}.hero__title .ln>span{display:inline-block;transform:translateY(110%);animation:rise .9s cubic-bezier(.2,.9,.25,1) forwards}.hero__title .ln:nth-child(2)>span{animation-delay:.12s}@keyframes rise{to{transform:translateY(0)}}.hero__lead{max-width:620px;margin:1.1rem auto 0;color:var(--text-dim);font-size:clamp(.95rem,1.6vw,1.15rem);line-height:1.7;opacity:0;animation:fade .9s ease .55s forwards}.hero__cta{margin-top:1.8rem;display:inline-flex;gap:12px;flex-wrap:wrap;justify-content:center;pointer-events:auto;opacity:0;animation:fade .9s ease .75s forwards}.hero__btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:.92rem;padding:.8rem 1.5rem;border-radius:var(--r-pill);border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.hero__btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}.hero__btn--ghost{background:transparent;color:var(--brand)}.hero__btn--ghost:hover{background:var(--fill-mid)}@keyframes fade{to{opacity:1}}.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translate(-50%);z-index:2;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--text-mute);display:flex;flex-direction:column;align-items:center;gap:8px}.scroll-cue .dot{width:22px;height:36px;border:1.5px solid var(--border-mid);border-radius:12px;position:relative}.scroll-cue .dot:after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;border-radius:3px;background:var(--text-mute);transform:translate(-50%);animation:scrolldot 1.6s ease-in-out infinite}@keyframes scrolldot{0%,to{opacity:0;transform:translate(-50%)}40%{opacity:1}80%{opacity:0;transform:translate(-50%,12px)}}.marquee{border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--accent);color:var(--accent-contrast);overflow:hidden;white-space:nowrap;padding:12px 0}.marquee__track{display:inline-flex;gap:2.5rem;padding-left:2.5rem;animation:marquee 26s linear infinite;font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;font-size:1rem}.marquee__track span{opacity:.92}.marquee__track span:after{content:"\2736";margin-left:2.5rem;opacity:.5}.marquee:hover .marquee__track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.gallery{max-width:1240px;margin:0 auto;padding:clamp(60px,9vw,130px) clamp(18px,4vw,40px)}.gallery__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(36px,6vw,70px);flex-wrap:wrap}.gallery__head h2{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(2rem,6vw,4rem);line-height:.95;margin:0;color:var(--brand)}.gallery__head p{margin:.4rem 0 0;color:var(--text-mute);max-width:420px;font-size:.95rem;line-height:1.6}.gallery__count{font-family:var(--font-display);font-size:clamp(2.4rem,7vw,4.6rem);color:var(--fill-strong);line-height:1}.wall{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(34px,6vw,86px) clamp(34px,5vw,70px)}@media (max-width: 760px){.wall{grid-template-columns:1fr}}.frame{--tiltX: 0deg;--tiltY: 0deg;display:block;text-decoration:none;color:inherit;perspective:1100px;opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}.frame.is-in{opacity:1;transform:translateY(0)}@media (min-width: 761px){.frame:nth-child(odd){margin-top:0}.frame:nth-child(2n){margin-top:clamp(40px,7vw,96px)}}.frame__mat{position:relative;background:linear-gradient(160deg,#fff,#f0f0f1);padding:clamp(14px,2.2vw,24px);border:clamp(9px,1.3vw,14px) solid #202126;border-radius:5px;box-shadow:0 0 0 1px #1213168c,0 1px #ffffff80 inset,0 34px 60px -28px #12131699;transform:rotateX(var(--tiltX)) rotateY(var(--tiltY));transform-style:preserve-3d;transition:box-shadow .35s ease,transform .12s ease}.frame:hover .frame__mat{box-shadow:0 0 0 1px #12131699,0 1px #ffffff80 inset,0 48px 80px -30px #121316a6}.frame__art{position:relative;aspect-ratio:4 / 3;border:1px solid rgba(18,19,22,.18);overflow:hidden;background:radial-gradient(120% 120% at 50% 8%,#fbfbfc,#e7e8ea);display:grid;place-items:center;transform:translateZ(28px)}.frame__art:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,#ffffff8c,#fff0 32%);opacity:.55;pointer-events:none;mix-blend-mode:screen}.frame__art svg{width:78%;height:78%;display:block}.frame__art .ink{fill:none;stroke:#20242b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.frame__art .ink--thin{stroke-width:1;opacity:.5}.frame__art .fillsoft{fill:#1213160f;stroke:none}.frame:hover .frame__art .draw{stroke-dasharray:var(--len, 1200);stroke-dashoffset:var(--len, 1200);animation:draw 1.5s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}.frame__tag{position:absolute;top:10px;left:10px;z-index:3;font-size:.64rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:.28rem .6rem;border-radius:var(--r-pill);background:#ffffffd9;border:1px solid var(--border-mid);color:var(--text-dim)}.plaque{margin:18px auto 0;max-width:88%;text-align:center;padding:14px 18px;background:var(--glass-solid);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:0 14px 30px -22px #12131680;transform:translateY(-26px);transition:transform .35s ease,box-shadow .35s ease}.frame:hover .plaque{transform:translateY(-34px);box-shadow:0 22px 40px -22px #1213168c}.plaque__no{font-family:var(--font-display);font-size:.82rem;letter-spacing:2px;color:var(--text-mute)}.plaque__title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.15rem,2.4vw,1.7rem);margin:.12rem 0 .3rem;color:var(--brand);letter-spacing:.5px}.plaque__desc{margin:0;font-size:.86rem;line-height:1.55;color:var(--text-dim)}.plaque__meta{margin-top:.55rem;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.plaque__meta span{font-size:.68rem;font-weight:600;letter-spacing:.3px;padding:.2rem .55rem;border-radius:var(--r-pill);background:var(--fill-soft);border:1px solid var(--border-soft);color:var(--text-mute)}.plaque__cta{display:inline-block;margin-top:.8rem;font-size:.82rem;font-weight:700;color:var(--brand);letter-spacing:.3px}.plaque__cta:after{content:" \2192";transition:margin .2s ease;display:inline-block}.frame:hover .plaque__cta:after{margin-left:6px}.about{max-width:1000px;margin:0 auto;padding:0 clamp(18px,4vw,40px) clamp(60px,9vw,120px);display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px}.about__card{padding:26px 24px;border-radius:var(--r-lg);background:var(--glass-solid);border:1px solid var(--border-soft);box-shadow:0 18px 40px -30px #12131680}.about__card .n{font-family:var(--font-display);font-size:2.4rem;line-height:1;color:var(--brand)}.about__card h4{margin:.5rem 0 .35rem;font-size:1rem;color:var(--brand)}.about__card p{margin:0;font-size:.86rem;line-height:1.6;color:var(--text-dim)}.site-footer{border-top:1px solid var(--border-soft);background:var(--bg-2);padding:40px clamp(18px,4vw,54px);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--text-mute);font-size:.84rem}.site-footer a{color:var(--text-dim);text-decoration:none;font-weight:600}.site-footer a:hover{color:var(--brand)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}html{scroll-behavior:auto}.frame{opacity:1;transform:none}}
