:root{--bg:#070b16;--bg2:#0e1426;--tx:#eef1f8;--mu:#97a0b8;--ac:#f2b134;--ac2:#ff6a5c;--card:rgba(255,255,255,.05);--bd:rgba(255,255,255,.1)}
[data-theme=light]{--bg:#f6f4ef;--bg2:#fff;--tx:#12172a;--mu:#5b6379;--ac:#d98a00;--ac2:#e0443a;--card:rgba(0,0,0,.04);--bd:rgba(0,0,0,.1)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--tx);line-height:1.65;overflow-x:hidden;transition:background .5s,color .5s;animation:pg .6s both}
@keyframes pg{from{opacity:0}}
body.out{opacity:0;transition:.25s}
h1,h2,h3{font-family:Unbounded,Manrope,sans-serif;line-height:1.15}
a{color:inherit;text-decoration:none}
.wrap{width:min(1120px,92%);margin:auto}
section{padding:clamp(60px,10vw,120px) 0;position:relative}
h2{font-size:clamp(1.6rem,4.5vw,2.8rem);margin-bottom:14px}
.sub{color:var(--mu);max-width:62ch;margin-bottom:30px}
header{position:fixed;inset:0 0 auto;z-index:50;padding:calc(10px + env(safe-area-inset-top)) 0 10px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 55%,transparent);border-bottom:1px solid var(--bd)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{display:flex;align-items:center;gap:10px;font-family:Unbounded;font-weight:700;font-size:.95rem}
.logo img{width:38px;height:38px;border-radius:9px;object-fit:contain}
.logo i{font-style:normal;color:var(--ac)}
.hr{display:flex;align-items:center;gap:12px}
.tg{width:58px;height:30px;border-radius:30px;border:1px solid var(--bd);background:var(--card);position:relative;cursor:pointer}
.tg span{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--ac);display:grid;place-items:center;font-size:13px;transition:transform .45s cubic-bezier(.7,-.4,.3,1.4)}
[data-theme=light] .tg span{transform:translateX(28px)}
.bg{width:42px;height:42px;border-radius:50%;border:1px solid var(--bd);background:var(--card);cursor:pointer;position:relative}
.bg b{position:absolute;left:11px;width:20px;height:2px;background:var(--tx);border-radius:2px;transition:.4s}
.bg b:nth-child(1){top:15px}.bg b:nth-child(2){top:20px;width:14px}.bg b:nth-child(3){top:25px}
.open .bg b:nth-child(1){top:20px;transform:rotate(45deg)}.open .bg b:nth-child(2){opacity:0}.open .bg b:nth-child(3){top:20px;transform:rotate(-45deg)}
#menu{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);z-index:45;padding:100px 32px 32px;display:flex;flex-direction:column;gap:6px;background:color-mix(in srgb,var(--bg2) 62%,transparent);backdrop-filter:blur(26px) saturate(1.4);-webkit-backdrop-filter:blur(26px) saturate(1.4);border-left:1px solid var(--bd);transform:translateX(105%);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.open #menu{transform:none}
#menu a{font-family:Unbounded;font-size:1.3rem;padding:12px 0;opacity:0;transform:translateX(30px);transition:.5s}
.open #menu a{opacity:1;transform:none}
.open #menu a:nth-child(2){transition-delay:.15s}.open #menu a:nth-child(3){transition-delay:.22s}.open #menu a:nth-child(4){transition-delay:.29s}
#menu a:hover,#menu a.act{color:var(--ac)}
#ov{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:.5s}.open #ov{opacity:1;pointer-events:auto}
#hero{min-height:100svh;display:flex;align-items:center;overflow:hidden;padding-top:90px}
.hw{display:grid;gap:40px;align-items:center;grid-template-columns:1fr;position:relative}
h1{font-size:clamp(2rem,7.5vw,4.8rem);letter-spacing:-.04em}
h1 .w{display:inline-block;overflow:hidden;vertical-align:top}
h1 .w span{display:inline-block;transform:translateY(110%)}.go h1 .w span{animation:up .9s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes up{to{transform:none}}
.lead{margin:22px 0 32px;color:var(--mu);font-size:clamp(1rem,2.4vw,1.2rem);max-width:52ch;opacity:0}.go .lead{animation:fi 1s .9s forwards}.go .hero-in{animation:fi 1s 1.1s both}
@keyframes fi{to{opacity:1}}
.btn{display:inline-block;padding:14px 28px;border-radius:50px;background:var(--ac);color:#111;border:0;cursor:pointer;font:600 1rem Manrope;transition:transform .3s,box-shadow .3s}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 30px color-mix(in srgb,var(--ac) 45%,transparent)}
.btn.o{background:transparent;color:var(--tx);border:1px solid var(--bd);margin-left:10px}
.rv{opacity:0;transform:translateY(34px) scale(.98);transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.2,1)}.rv.in{opacity:1;transform:none}
.sec{padding-top:clamp(120px,16vw,170px)}
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{padding:26px 22px;border:1px solid var(--bd);background:var(--card);border-radius:22px;transition:transform .4s,border-color .4s;display:block}
.card:hover{transform:translateY(-6px);border-color:var(--ac)}.card h3{font-size:1.05rem;margin-bottom:8px}.card p{font-size:.92rem;color:var(--mu)}
.abt{display:grid;gap:40px;grid-template-columns:1fr}@media(min-width:860px){.abt{grid-template-columns:1.1fr 1fr;align-items:start}}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:26px 0}
.stat{padding:20px;border:1px solid var(--bd);background:var(--card);border-radius:20px}
.stat b{font-family:Unbounded;font-size:2.1rem;color:var(--ac);display:block}
.pl{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.fl{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.fl button{padding:8px 18px;border-radius:30px;border:1px solid var(--bd);background:var(--card);color:var(--tx);cursor:pointer;font:600 .85rem Manrope;transition:.3s}
.fl button.on{background:var(--ac);color:#111;border-color:var(--ac)}
#grid{columns:1;column-gap:14px}@media(min-width:520px){#grid{columns:2}}@media(min-width:900px){#grid{columns:3}}
.ph{break-inside:avoid;margin-bottom:14px;border-radius:18px;overflow:hidden;position:relative;cursor:zoom-in;background:var(--card);animation:fi .6s both}
.ph img{width:100%;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.ph:hover img{transform:scale(1.06)}
.ph figcaption{position:absolute;inset:auto 0 0;padding:30px 14px 12px;font-size:.85rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.75));opacity:0;transition:.4s}.ph:hover figcaption{opacity:1}
.empty{color:var(--mu);padding:40px;border:1px dashed var(--bd);border-radius:20px;text-align:center}
#thanks{text-align:center;overflow:hidden;background:var(--bg2)}
#thanks h2{font-size:clamp(1.8rem,6vw,3.8rem);background:linear-gradient(100deg,var(--ac),var(--ac2),var(--ac),var(--ac2));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sh 6s linear infinite}
@keyframes sh{to{background-position:-300% 0}}
#thanks p{max-width:56ch;margin:auto;color:var(--mu)}
.sp{position:absolute;bottom:-20px;width:8px;height:8px;border-radius:50%;background:var(--ac);opacity:0;animation:rise linear infinite;pointer-events:none}
@keyframes rise{10%{opacity:.8}to{transform:translateY(-70vh) translateX(var(--x));opacity:0}}
footer{padding:50px 0 calc(40px + env(safe-area-inset-bottom));border-top:1px solid var(--bd);text-align:center;color:var(--mu);font-size:.9rem}
footer a.ph0{color:var(--ac);font-weight:600;font-size:1.15rem}
#fb{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:60;width:58px;height:58px;border-radius:50%;background:#1877f2;display:grid;place-items:center;box-shadow:0 10px 30px rgba(24,119,242,.5);animation:bob 3s ease-in-out infinite}
#fb::before,#fb::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #1877f2;animation:ring 2.2s infinite}#fb::after{animation-delay:1.1s}
@keyframes ring{to{transform:scale(1.9);opacity:0}}@keyframes bob{50%{transform:translateY(-7px) rotate(-6deg)}}
#fb:hover{animation:none;transform:scale(1.15) rotate(10deg);transition:.3s}
#fb svg{width:30px;height:30px;fill:#fff}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}

/* ===== v3 ===== */
option{background:var(--bg2);color:var(--tx)}
#pb{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--ac),var(--ac2));z-index:60}
#top{position:fixed;left:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid var(--bd);background:color-mix(in srgb,var(--bg2) 70%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--tx);cursor:pointer;opacity:0;transform:translateY(20px);pointer-events:none;transition:.4s;font-size:1.1rem}
#top.on{opacity:1;transform:none;pointer-events:auto}
.badge{display:inline-block;padding:7px 16px;border-radius:30px;border:1px solid var(--bd);background:var(--card);font-size:.8rem;font-weight:600;color:var(--mu);margin-bottom:20px}
.badge b{color:var(--ac)}
.btn.big{padding:16px 32px;font-size:1.05rem}
.scroll{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:center;transition:opacity .4s}
.scroll.hide{opacity:0;pointer-events:none}
.scroll a{width:26px;height:42px;border:2px solid var(--mu);border-radius:16px;display:flex;justify-content:center;padding-top:7px}
.scroll span{width:4px;height:8px;border-radius:4px;background:var(--ac);animation:sdot 1.7s cubic-bezier(.6,0,.4,1) infinite}
@keyframes sdot{0%{transform:translateY(0);opacity:0}20%{opacity:1}80%{transform:translateY(14px);opacity:1}100%{transform:translateY(18px);opacity:0}}
.mq{overflow:hidden;border-block:1px solid var(--bd);padding:18px 0;background:var(--bg2)}
.mt{display:flex;width:max-content;animation:mq 30s linear infinite}
.mt span{font-family:Unbounded;font-size:clamp(1rem,2.6vw,1.5rem);white-space:nowrap;color:var(--mu);padding-right:46px}
.mt span::after{content:"✦";margin-left:46px;color:var(--ac)}
@keyframes mq{to{transform:translateX(-50%)}}
.eyebrow{font:600 .78rem Manrope;letter-spacing:.22em;text-transform:uppercase;color:var(--ac);margin-bottom:10px}
.stats3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.card{position:relative;overflow:hidden}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--ac) 20%,transparent),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover::after{opacity:1}
.ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac);margin-bottom:16px}
.ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.split{display:grid;gap:34px;align-items:center}@media(min-width:860px){.split{grid-template-columns:1fr 1fr}}
.row2{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.cta{padding:clamp(34px,6vw,60px);border-radius:30px;text-align:center;border:1px solid var(--bd);background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 14%,transparent),color-mix(in srgb,var(--ac2) 10%,transparent))}
.cta .btn{margin:6px}
.fb2{background:#1877f2;color:#fff}
.flinks{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:22px}.flinks a:hover{color:var(--ac)}
/* gallery */
.ph img{opacity:0;transition:opacity .5s,transform .7s cubic-bezier(.2,.8,.2,1)}.ph img.in{opacity:1}
#grid{columns:auto}#grid.mas{columns:1;column-gap:14px}@media(min-width:520px){#grid.mas{columns:2}}@media(min-width:900px){#grid.mas{columns:3}}
#grid.sq{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}@media(min-width:700px){#grid.sq{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}}
#grid.sq .ph{aspect-ratio:1;margin:0}#grid.sq .ph img{height:100%;object-fit:cover}
.tb{position:sticky;top:calc(66px + env(safe-area-inset-top));z-index:30;display:grid;gap:10px;padding:12px;margin-bottom:22px;border:1px solid var(--bd);border-radius:20px;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.tb .r1{display:flex;gap:10px;flex-wrap:wrap}
.tb input,.tb select{flex:1;min-width:130px;padding:11px 14px;border-radius:14px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:600 .9rem Manrope;outline:0}
.tb input:focus,.tb select:focus{border-color:var(--ac)}
.seg{display:flex;border:1px solid var(--bd);border-radius:14px;overflow:hidden}.seg button{padding:0 16px;background:transparent;border:0;color:var(--mu);cursor:pointer;font-size:1rem}.seg button.on{background:var(--ac);color:#111}
.cnt{color:var(--mu);font-size:.85rem;margin:-8px 0 16px}
.note{padding:12px 16px;border-radius:14px;border:1px dashed var(--ac);color:var(--mu);font-size:.85rem;margin-bottom:18px}
#more{height:1px}.lm{display:block;margin:24px auto 0}
.hd{padding-top:clamp(120px,16vw,160px)}
/* ===== v4 ===== */
.hide{display:none!important}
#menu{overflow-y:auto;gap:2px;padding-top:92px}
#menu a{font-size:1.1rem;padding:9px 0}
.mctl{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-bottom:24px}
.mctl button{padding:9px 16px;border-radius:30px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:600 .85rem Manrope,'Noto Sans Sinhala',sans-serif;cursor:pointer}
.mctl button.on{background:var(--ac);color:#111}
html[lang=si] body{font-family:'Noto Sans Sinhala',Manrope,sans-serif}
html[lang=si] h1,html[lang=si] h2,html[lang=si] h3,html[lang=si] .logo,html[lang=si] #menu a{font-family:'Noto Sans Sinhala',sans-serif}
.alb{position:relative;display:block;border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:var(--card)}
.alb img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.alb:hover img{transform:scale(1.07)}
.alb div{position:absolute;inset:auto 0 0;padding:34px 16px 14px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78))}.alb h3{font-size:1rem}
.gl{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.vd{border-radius:20px;overflow:hidden;border:1px solid var(--bd);background:var(--card)}
.vt{position:relative;aspect-ratio:16/9;background:#0b1e4a center/cover;cursor:pointer;display:grid;place-items:center}
.vt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vt i{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:#111;font-style:normal;font-size:1.4rem;transition:transform .3s}.vt:hover i{transform:scale(1.12)}
.vd h3{font-size:.95rem;padding:14px 16px}
.an{padding:22px;border:1px solid var(--bd);border-radius:20px;background:var(--card);margin-bottom:14px}
.an small{color:var(--mu)}.an h3{font-size:1.05rem;margin:6px 0}.an p{color:var(--mu);font-size:.95rem}.pin{color:var(--ac);font-weight:600;margin-right:8px}
.ev{display:flex;gap:16px;padding:18px;border:1px solid var(--bd);border-radius:20px;background:var(--card);margin-bottom:12px}
.dt{flex:none;width:64px;height:max-content;text-align:center;padding:8px 0;border-radius:14px;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac)}
.dt b{display:block;font:700 1.5rem Unbounded,sans-serif}.dt span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.ev h3{font-size:1rem}.ev small{color:var(--mu)}.ev p{color:var(--mu);font-size:.92rem}.ev.past{opacity:.6}
.tm{text-align:center}
.av{width:110px;height:110px;margin:0 auto 14px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--ac);font:700 2rem Unbounded,sans-serif}.av img{width:100%;height:100%;object-fit:cover}
.fm{display:grid;gap:12px;max-width:560px}
.fm input,.fm textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:1rem Manrope,'Noto Sans Sinhala',sans-serif;outline:0}
.fm textarea{min-height:140px;resize:vertical}.fm input:focus,.fm textarea:focus{border-color:var(--ac)}
.fm .ok{color:#3ecf8e}.hp{position:absolute;left:-9999px}

/* ===================== v7: hero (circle logo + soft aurora) ===================== */
@keyframes spin{to{transform:rotate(1turn)}}
@keyframes lf{to{translate:0 -12px}}
@keyframes focus{from{filter:blur(16px);opacity:0;transform:scale(1.1)}to{filter:none;opacity:1;transform:none}}
#hero{isolation:isolate}
.hbg{position:absolute;inset:0;z-index:-1;overflow:hidden;contain:paint;transform:translate3d(calc(var(--px,0)*-16px),calc(var(--py,0)*-12px),0);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.hbg .m{position:absolute;border-radius:50%;will-change:transform}
.m1{width:72vmax;height:72vmax;left:-28vmax;top:-32vmax;background:radial-gradient(closest-side,rgba(47,107,255,.62),rgba(47,107,255,0));animation:d1 24s ease-in-out infinite alternate}
.m2{width:64vmax;height:64vmax;right:-26vmax;bottom:-30vmax;background:radial-gradient(closest-side,rgba(242,177,52,.5),rgba(242,177,52,0));animation:d2 28s ease-in-out infinite alternate}
.m3{width:52vmax;height:52vmax;right:2vmax;top:-26vmax;background:radial-gradient(closest-side,rgba(196,36,52,.42),rgba(196,36,52,0));animation:d3 32s ease-in-out infinite alternate}
.m4{width:46vmax;height:46vmax;left:6vmax;bottom:-30vmax;background:radial-gradient(closest-side,rgba(124,77,255,.4),rgba(124,77,255,0));animation:d4 36s ease-in-out infinite alternate}
@keyframes d1{to{transform:translate3d(22vmax,16vmax,0) scale(1.18)}}@keyframes d2{to{transform:translate3d(-20vmax,-14vmax,0) scale(1.12)}}
@keyframes d3{to{transform:translate3d(-24vmax,18vmax,0) scale(.86)}}@keyframes d4{to{transform:translate3d(18vmax,-12vmax,0) scale(1.2)}}
.bk{position:absolute;bottom:-14%;left:var(--l);width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.5),rgba(255,255,255,0) 68%);opacity:0;animation:bk var(--t) linear infinite;animation-delay:var(--d);will-change:transform}
@keyframes bk{0%{transform:translate3d(0,0,0) scale(.6);opacity:0}15%{opacity:.55}100%{transform:translate3d(var(--x),-115vh,0) scale(1.25);opacity:0}}
.grain{position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:160px}
.hbg::after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,var(--bg))}
[data-theme=light] .hbg .m{opacity:.55}[data-theme=light] .bk{background:radial-gradient(circle,rgba(47,107,255,.35),rgba(47,107,255,0) 68%)}[data-theme=light] .grain{opacity:.03}
.hl{position:relative;width:min(340px,72vw);aspect-ratio:1;margin:0 auto;order:-1;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s cubic-bezier(.2,.8,.2,1);animation:lf 6s ease-in-out infinite alternate}
.hl img{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;object-fit:cover;box-shadow:0 22px 70px rgba(10,40,140,.55);filter:blur(16px);opacity:0}
.go .hl img{animation:focus 1.4s .2s both}
.hl .halo{position:absolute;inset:-20%;z-index:0;border-radius:50%;background:radial-gradient(closest-side,rgba(47,107,255,.5),rgba(242,177,52,.16) 55%,transparent);animation:halo 5s ease-in-out infinite alternate}
@keyframes halo{from{transform:scale(.9);opacity:.7}to{transform:scale(1.08);opacity:1}}
.hl .ring{position:absolute;inset:-10px;z-index:1;border-radius:50%;background:conic-gradient(var(--ac),var(--ac2),#2f6bff,var(--ac));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));animation:spin 10s linear infinite}
.hl .orb{position:absolute;inset:-10px;z-index:3;animation:spin 7s linear infinite}
.hl .orb i{position:absolute;top:-5px;left:50%;margin-left:-5px;width:10px;height:10px;border-radius:50%;background:var(--ac);box-shadow:0 0 16px 4px var(--ac)}
.hl.sm{width:min(280px,70vw);order:0;animation:none;transform:none}.hl.sm img{filter:none;opacity:1;animation:none}.hl.sm .ring{animation:none}
@media(min-width:860px){.hw{grid-template-columns:1.3fr 1fr}.hl{order:0;width:min(430px,100%)}}
/* ===================== v7: loader (cinematic counter + autofocus + curtain) ===================== */
#loader{position:fixed;inset:0;z-index:999;background:#060b18;color:#eaf0ff;transition:transform 1s cubic-bezier(.76,0,.24,1) .1s;will-change:transform}
#loader::after{content:"";position:absolute;left:-8%;right:-8%;top:calc(100% - 1px);height:14vh;background:#060b18;border-radius:0 0 50% 50%/0 0 100% 100%}
#loader.done{transform:translateY(-120%);pointer-events:none}
.noload #loader{display:none}
.lv{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding:calc(18px + env(safe-area-inset-top)) clamp(18px,4vw,48px) calc(22px + env(safe-area-inset-bottom));overflow:hidden}
.lv::before{content:"";position:absolute;inset:0;background:radial-gradient(60vmax 50vmax at 50% 45%,rgba(47,107,255,.26),transparent 65%),radial-gradient(40vmax 30vmax at 90% 100%,rgba(242,177,52,.14),transparent 70%);pointer-events:none}
.lfl{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:3}
@keyframes flash{from{opacity:.55}to{opacity:0}}
.lk .lfl{animation:flash .5s}
.lt1{position:relative;display:flex;justify-content:space-between;font:700 .7rem Manrope,sans-serif;letter-spacing:.28em;color:#8fa4d4;opacity:0;animation:fi .8s .2s forwards}
@keyframes recb{50%{opacity:0}}
.lt1 .rc{display:flex;align-items:center;gap:8px;color:#ff5a5a}.lt1 .rc i{width:9px;height:9px;border-radius:50%;background:#ff3b3b;animation:recb 1.2s steps(2) infinite}
.lc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(34px,7vh,56px)}
.lf{position:relative;width:min(36vw,170px);aspect-ratio:1}
.lf img{width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 0 60px rgba(47,107,255,.55);animation:lfin 1.1s .15s cubic-bezier(.2,.9,.2,1) both}
@keyframes lfin{from{opacity:0;transform:scale(.8);filter:blur(14px)}to{opacity:1;transform:none;filter:none}}
.lf svg{position:absolute;left:-12%;top:-12%;width:124%;height:124%;transform:rotate(-90deg)}
.lf .tr{fill:none;stroke:rgba(255,255,255,.12);stroke-width:.5}
.lf .pg{fill:none;stroke:#f2b134;stroke-width:1;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
.fx{position:absolute;width:24px;height:24px;border:0 solid #f2b134;opacity:0;animation:fxin .4s .7s forwards,fxh 1.1s .7s ease-in-out infinite alternate}
@keyframes fxin{to{opacity:1}}
@keyframes fxh{from{transform:translate(calc(var(--x)*18px),calc(var(--y)*18px))}to{transform:translate(calc(var(--x)*-4px),calc(var(--y)*-4px))}}
.lk .fx{animation:none;opacity:1;border-color:#3ecf8e;transform:translate(calc(var(--x)*-8px),calc(var(--y)*-8px));transition:transform .25s cubic-bezier(.2,.9,.2,1.5),border-color .2s}
.ln{text-align:center;font:700 clamp(.95rem,4.4vw,1.5rem) Unbounded,Manrope,sans-serif;letter-spacing:.06em;line-height:1.35}
.ln .wd{display:inline-block;white-space:nowrap}
.ln .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em}
.ln .w i{display:inline-block;font-style:normal;transform:translateY(115%);animation:up .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.95s + var(--d)*.03s)}
.lb2{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.ct{display:flex;align-items:flex-start;font:700 clamp(64px,24vw,170px) Unbounded,Manrope,sans-serif;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.cd{display:block;height:1em;overflow:hidden;width:1ch;font-variant-numeric:tabular-nums}
.cd.h{width:0;opacity:0;transition:width .35s,opacity .35s}.lk .cd.h{width:.7ch;opacity:1}
.cd>div{display:flex;flex-direction:column;will-change:transform}
.cd b{display:block;height:1em;line-height:1;flex:none;font-weight:700}
.ct .pc{font-size:.26em;margin:.35em 0 0 .25em;color:#f2b134;letter-spacing:0}
.st2{text-align:right;font:700 .7rem Manrope,sans-serif;letter-spacing:.24em;color:#8fa4d4;padding-bottom:.9em;line-height:2}
.st2 #lst{color:#f2b134;transition:color .2s}.lk .st2 #lst{color:#3ecf8e}
#loader.done .lv{opacity:0;transform:scale(.97);transition:opacity .5s .1s,transform .6s}
/* ===================== v7: photography ===================== */
.flw{position:relative}
.flw .fl{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0;padding:2px 4px}.flw .fl::-webkit-scrollbar{display:none}.flw .fl button{flex:none}
.flw.can .fl{-webkit-mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent)}
.flw .fa{position:absolute;top:50%;margin-top:-17px;width:34px;height:34px;border-radius:50%;border:1px solid var(--bd);background:color-mix(in srgb,var(--bg2) 90%,transparent);color:var(--tx);cursor:pointer;z-index:2;display:none;place-items:center;font-size:1.1rem;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:opacity .25s,background .2s}
.flw.can .fa{display:grid}.flw .fa.l{left:-4px}.flw .fa.r{right:-4px}.flw .fa:disabled{opacity:0;pointer-events:none}.flw .fa:hover{background:var(--ac);color:#111}
.fl button i{font-style:normal;opacity:.6;font-size:.72em;margin-left:4px}
.tb{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ph::after{content:"";position:absolute;inset:10px;pointer-events:none;opacity:0;transition:opacity .35s;background-repeat:no-repeat;
background-image:linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac)),linear-gradient(var(--ac),var(--ac));
background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-size:18px 2px,2px 18px,18px 2px,2px 18px,18px 2px,2px 18px,18px 2px,2px 18px}
.ph:hover::after{opacity:1}
#grid.mas .ph{aspect-ratio:var(--ar,auto)}#grid.mas .ph[style] img{height:100%;object-fit:cover}
#grid.rows{display:block;columns:auto}
.rowh{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px}.rowh h3{font-size:1rem}
.arr{display:flex;gap:8px}.arr button{width:40px;height:40px;border-radius:50%;border:1px solid var(--bd);background:var(--card);color:var(--tx);cursor:pointer;font-size:1.2rem;transition:.3s}.arr button:hover{background:var(--ac);color:#111}
.hrow{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:10px;margin-bottom:14px;scrollbar-width:none}.hrow::-webkit-scrollbar{display:none}
.hrow .ph{flex:0 0 min(70vw,270px);aspect-ratio:3/4;margin:0;scroll-snap-align:start}.hrow .ph img{height:100%;object-fit:cover}
#grid.pol{columns:1;column-gap:18px}@media(min-width:520px){#grid.pol{columns:2}}@media(min-width:900px){#grid.pol{columns:3}}
#grid.pol .ph{background:#fff;padding:10px 10px 46px;border-radius:4px;box-shadow:0 10px 26px rgba(0,0,0,.35);transform:rotate(var(--r,-2deg));transition:transform .4s;margin-bottom:22px}
#grid.pol .ph:nth-child(3n+1){--r:-2.2deg}#grid.pol .ph:nth-child(3n+2){--r:1.8deg}#grid.pol .ph:nth-child(3n){--r:-.8deg}
#grid.pol .ph:hover{transform:rotate(0) scale(1.03);z-index:2}#grid.pol .ph img{border-radius:2px}
#grid.pol figcaption{position:absolute;inset:auto 0 13px;background:none;color:#222;opacity:1;font:600 .85rem Manrope,'Noto Sans Sinhala',sans-serif;text-align:center;padding:0 8px}
#grid.pol .ph::after{display:none}
.sk{border-radius:18px;background:var(--card);animation:skp 1.2s ease-in-out infinite alternate;margin-bottom:14px;break-inside:avoid}@keyframes skp{to{opacity:.45}}
.film{position:relative;background:#0c0c0e;border-radius:12px;padding:32px 14px}
.film::before,.film::after{content:"";position:absolute;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,transparent 0 8px,#2a2a30 8px 20px,transparent 20px 30px)}
.film::before{top:11px}.film::after{bottom:11px}
.lat{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.lat::-webkit-scrollbar{display:none}
.lat .ph{flex:0 0 min(70vw,300px);aspect-ratio:4/3;scroll-snap-align:center;margin:0;border-radius:6px;display:block}.lat .ph img{height:100%;object-fit:cover}
.hact{display:flex;gap:10px;align-items:center}
#lb{position:fixed;inset:0;z-index:90;background:#03060e;display:none;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);isolation:isolate}
#lb.on{display:flex;animation:fi .3s both}
#lbg{position:absolute;inset:-60px;z-index:-1;background:center/cover;filter:blur(40px) brightness(.45) saturate(1.4);transition:background-image .4s}
#lb .bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;color:#fff;gap:8px;flex:none}#lb .bar div{display:flex;gap:8px}
#lb button,#lb a.ib{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:1.05rem}
#lb button:hover,#lb a.ib:hover,#lb button.on{background:var(--ac);color:#111}
#lb .st{position:relative;overflow:hidden;display:grid;place-items:center;flex:1;min-height:0;touch-action:pan-y}
#lb .st img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .35s,opacity .3s,filter .45s;cursor:zoom-in;user-select:none;-webkit-user-drag:none}
#lb .st img.ld{filter:blur(7px)}#lb .st img.z{transform:scale(2.2);cursor:zoom-out}
#lb .st img.shut{animation:iris .6s cubic-bezier(.2,.8,.2,1)}
@keyframes iris{from{clip-path:circle(0% at 50% 50%);transform:scale(1.12)}to{clip-path:circle(75% at 50% 50%);transform:none}}
#lflash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:3}#lflash.go{animation:flash .35s}
#lb .nv{position:absolute;top:50%;margin-top:-21px;z-index:2}#lb .nv.p{left:12px}#lb .nv.n{right:12px}
#lb .cap{text-align:center;color:#fff;padding:10px 16px 6px;font-size:.95rem;flex:none}#lb .cap small{display:block;color:#9fb2dd}
#lth{display:flex;gap:6px;overflow-x:auto;padding:6px 14px;flex:none;scrollbar-width:none}#lth::-webkit-scrollbar{display:none}
#lth img{height:46px;width:46px;object-fit:cover;border-radius:8px;opacity:.5;cursor:pointer;flex:none;border:2px solid transparent;transition:.25s}#lth img.on{opacity:1;border-color:var(--ac)}
#lb .acts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:6px 16px 10px;flex:none}
#lb .acts span{color:#9fb2dd;align-self:center;font-size:.85rem}
#lb .acts button,#lb .acts a.ib{width:auto;min-width:42px;padding:0 14px;border-radius:30px;font:600 .85rem Manrope,sans-serif;text-decoration:none;line-height:42px;height:42px}
#lb .acts button.on{background:#ff4d6d;border-color:#ff4d6d;color:#fff}
#lcm{display:none;max-height:30vh;overflow:auto;margin:0 auto;width:min(560px,92%);padding:4px 0 10px;color:#fff;flex:none}
#lb.cm #lcm{display:block}
.cmt{padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.08);margin-bottom:8px;font-size:.88rem}.cmt b{display:block;color:var(--ac)}
#lcm form{display:grid;gap:8px;margin-top:8px}
#lcm input{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font:.9rem Manrope,'Noto Sans Sinhala',sans-serif}
/* ===================== v7: page transitions, perf ===================== */
#app{transition:opacity .17s}#app.sw{opacity:0}
header{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.off,.off *,.off *::before,.off *::after{animation-play-state:paused!important}
.lite .hbg .m{animation:none;will-change:auto;opacity:.5}.lite .bk{display:none}.lite .grain{display:none}.lite .hbg{transform:none!important}
.lite .hl,.lite .hl .halo,.lite .hl .ring,.lite .hl .orb{animation:none}.lite .hl img,.lite .go .hl img{animation:none;filter:none;opacity:1}
.lite header,.lite .tb,.lite #top,.lite #menu{backdrop-filter:none;-webkit-backdrop-filter:none}
.lite header,.lite .tb,.lite #menu{background:var(--bg2)}
.lite #lbg{display:none}.lite .mt{animation-duration:60s}.lite .sp{display:none}.lite .ph::after{display:none}
.tb .fl{margin:0}.tb .fl:empty{display:none}
/* ===================== v7: content protection ===================== */
html,body{-webkit-touch-callout:none}
body{-webkit-user-select:none;user-select:none}
input,textarea,select{-webkit-user-select:text;user-select:text}
img,svg{-webkit-user-drag:none;user-drag:none;pointer-events:none}
::selection{background:transparent}input::selection,textarea::selection{background:rgba(242,177,52,.45)}
@media print{html{display:none!important}}.nop body{display:none!important}
#dtw{position:fixed;inset:0;z-index:99999;display:none;place-items:center;text-align:center;background:#060b18;color:#fff;padding:24px;font:600 1rem Manrope,sans-serif}
.dt #dtw{display:grid}.dt body>*:not(#dtw){visibility:hidden!important}
#lth button{padding:0;border:2px solid transparent;border-radius:10px;background:none;width:50px;height:50px;flex:none;cursor:pointer;opacity:.5;overflow:hidden;transition:.25s}
#lth button.on{opacity:1;border-color:var(--ac)}#lth button img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
#hero{padding-bottom:84px}
.fl button .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
