:root{--accent:#426b57;--bg:#f4f5ef;--ink:#20362b;--muted:#6b756c;--surface:#fff;--line:#dce2d9;--radius:26px;--cols:3;--nav:#183c30;--nav-size:54px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:10px 16px;transition:background .15s,transform .15s}button:hover{filter:brightness(.95);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);color:white;border-color:transparent}a{color:inherit;text-decoration:none}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:11px 13px}input[type=color]{height:44px;padding:4px}input[type=checkbox]{width:auto;accent-color:var(--accent)}label{display:grid;gap:6px;color:var(--muted);font-size:13px}label.check{display:flex;align-items:center;gap:10px;padding:10px 0}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,6vw,76px);font-weight:500;letter-spacing:-3px;line-height:1.06;max-width:750px}h2{font-size:25px;letter-spacing:-.7px}small{color:var(--muted)}[hidden]{display:none!important}#wallpaper{position:fixed;inset:0;z-index:-1;background-size:cover;background-position:center;opacity:.18;pointer-events:none}.live:before,.live:after{content:'';position:fixed;width:45vw;height:45vw;border-radius:50%;background:radial-gradient(circle,#c8d9a566,transparent 70%);top:-10vw;right:-10vw;animation:drift 28s ease-in-out infinite alternate;z-index:-1;pointer-events:none}.live:after{top:auto;bottom:-20vw;left:-15vw;background:radial-gradient(circle,#b1cec966,transparent 70%);animation-delay:-10s}@keyframes drift{to{transform:translate(-10vw,14vh) scale(1.2)}}.shell{max-width:1240px;margin:auto;padding:0 36px}.header{display:flex;align-items:center;justify-content:space-between;min-height:100px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:19px;font-weight:650;letter-spacing:-.5px}.brand img{width:38px;height:38px;object-fit:contain}.mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--accent);color:white;font-size:24px}.header-right{display:flex;gap:12px;align-items:center}.pill,.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px}.pill{background:var(--surface);padding:8px 13px;border-radius:30px;border:1px solid var(--line)}.hero{padding:72px 0 46px;display:flex;justify-content:space-between;gap:24px;align-items:end}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--accent);margin-bottom:23px}.dot{width:7px;height:7px;background:var(--accent);border-radius:50%}.hero p{font-size:17px;color:var(--muted);max-width:490px;margin:22px 0 0}.hero-art{flex-shrink:0;width:160px;height:160px;border:1px solid var(--line);border-radius:45px;transform:rotate(-10deg);display:grid;place-items:center;font-size:76px;background:var(--surface);box-shadow:14px 14px 0 #426b5710}.banner{overflow:hidden;border-block:1px solid var(--line);margin-bottom:38px;padding:12px 0;color:var(--accent);font-size:12px;letter-spacing:2px;text-transform:uppercase}.banner-track{display:flex;width:max-content;animation:marquee var(--speed,35s) linear infinite}.banner-track span{padding-right:55px}@keyframes marquee{to{transform:translateX(-50%)}}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 26px}.toolbar h2{margin:0}.search{max-width:330px;background:var(--surface)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.filters button{padding:7px 15px;border-radius:25px;font-size:12px}.filters button.active{background:var(--ink);color:var(--bg)}.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:24px;padding-bottom:50px}.card{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--line);text-align:left;padding:0;min-height:275px;box-shadow:0 8px 25px #19322905;transition:transform .2s,box-shadow .2s;isolation:isolate}.card:hover{transform:translateY(-5px);box-shadow:0 18px 30px #19322912}.card .cover{position:absolute;inset:0;background:linear-gradient(135deg,var(--card-color),#173f37);z-index:-2}.card .cover img{width:100%;height:100%;object-fit:cover}.card.photo{color:white;display:flex;flex-direction:column;justify-content:space-between}.card.photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#00000008 20%,#000000b8);z-index:-1}.card-top{display:flex;justify-content:space-between;align-items:center;padding:23px}.card-icon{width:40px;height:40px;border-radius:12px;background:#ffffffda;display:grid;place-items:center;color:#20362b;font-size:20px}.card-icon img{width:27px;height:27px;object-fit:contain}.card-kind{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;background:#ffffff20;border:1px solid #ffffff50;border-radius:20px;padding:6px 10px}.card-copy{padding:22px;position:relative}.card-copy h3{font-size:23px;font-weight:550;margin-bottom:6px;letter-spacing:-.5px;padding-right:30px}.card-copy p{font-size:13px;opacity:.8;margin:0;max-width:85%}.arrow{position:absolute;right:23px;bottom:27px;font-size:25px}.card.compact{min-height:205px}.card.compact .cover{height:7px;bottom:auto}.card.compact .cover img{display:none}.card.compact .card-kind{color:var(--muted);border-color:var(--line)}.card.compact .card-icon{background:var(--bg)}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:26px 0 35px;font-size:12px;color:var(--muted)}.empty{grid-column:1/-1;padding:65px 20px;text-align:center;border:1px dashed var(--line);border-radius:22px;color:var(--muted)}#viewer{position:fixed;inset:0;background:white;z-index:10}#frame{width:100%;height:100%;border:0;display:block}#navigation{position:fixed;z-index:20;right:20px;bottom:22px}#navigation.left{right:auto;left:20px}#floatButton{width:var(--nav-size);height:var(--nav-size);padding:0;border-radius:50%;color:white;background:var(--nav);border:1px solid #ffffff55;box-shadow:0 5px 20px #0004;font-size:26px}#edgeHandle{position:fixed;right:0;top:48%;border-radius:15px 0 0 15px;padding:15px 8px;background:var(--nav);color:white;border:0}#navigation.left #edgeHandle{right:auto;left:0;border-radius:0 15px 15px 0}dialog{width:min(620px,calc(100% - 28px));max-height:90vh;border:1px solid var(--line);border-radius:24px;padding:26px;color:var(--ink);background:var(--surface);box-shadow:0 24px 100px #0004}dialog::backdrop{background:#10241c88;backdrop-filter:blur(6px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-head h2{margin:0}.dialog-head button{padding:4px 11px;font-size:24px}.menu-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.menu-actions button{font-size:12px;padding:8px 10px}.menu-item{width:100%;display:flex;gap:15px;align-items:center;text-align:left;margin-top:10px}.menu-item strong{display:block}.menu-item small{display:block}.actions{display:flex;justify-content:end;gap:10px;margin-top:24px;flex-wrap:wrap}.danger{color:#b0413f;border-color:#d79191}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.span{grid-column:1/-1}.form-note{font-size:12px;color:var(--muted);margin:16px 0}.admin-shell{max-width:1180px;margin:0 auto;padding:32px}.admin-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:38px}.tabs{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap}.tabs .active{background:var(--accent);color:white}.panel{padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:22px}.admin-list{display:grid;gap:12px}.admin-row{display:flex;align-items:center;gap:17px;padding:18px;border:1px solid var(--line);background:var(--surface);border-radius:16px}.admin-row .info{flex:1;min-width:0}.admin-row strong{display:block}.admin-row small{overflow-wrap:anywhere}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions button{font-size:12px;padding:8px 11px}.login{max-width:440px;margin:10vh auto;padding:35px}.login h1{font-size:38px;letter-spacing:-1.5px}.login label{margin:20px 0}.login button{width:100%}#toast{position:fixed;z-index:100;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:14px;background:#183c30;color:white;max-width:90vw;display:none}progress{width:100%;height:12px;accent-color:var(--accent)}.asset-control{display:flex;gap:8px}.asset-control input{min-width:0}.asset-control button{font-size:11px;padding:6px 10px}.asset-upload{display:none}.error{color:#b0413f}.hint{padding:14px;border-radius:12px;background:var(--bg);font-size:12px}.preview-link{font-size:13px;text-decoration:underline}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0}.admin-heading h2{margin:0}@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{display:none}.shell{padding:0 24px}.hero{padding-top:50px}.row-actions{max-width:200px}}@media(max-width:560px){.shell{padding:0 18px}.header{min-height:78px}.header .pill{display:none}h1{letter-spacing:-1.5px}.hero{padding:42px 0 32px}.toolbar{flex-direction:column;align-items:stretch;gap:14px}.search{max-width:none}.grid{grid-template-columns:1fr;gap:16px}.card{min-height:245px}.footer{flex-direction:column}.form-grid{grid-template-columns:1fr}.span{grid-column:auto}.admin-shell{padding:18px}.admin-row{flex-wrap:wrap}.row-actions{max-width:none;width:100%}.admin-nav{gap:12px}.panel{padding:18px}dialog{padding:20px}.hero p{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}body.viewing{overflow:hidden}
/* Visitor design controls, compact layout and neutral dark palette. */
body{font-size:var(--bodySize,15px);font-family:var(--font,system-ui);background:#eef0eb;isolation:isolate}body.dark{background:#0b0e14}#wallpaper{z-index:-2;opacity:var(--wallpaper-opacity,.45)}#backgroundColor{position:fixed;inset:0;z-index:-1;pointer-events:none}.live:before,.live:after{z-index:-1}.visitor-shell{max-width:var(--pageWidth,1240px);padding-inline:var(--pagePadding,24px)}.visitor-shell .header{min-height:var(--headerHeight,68px);gap:12px}.visitor-shell .brand{min-width:0}.visitor-shell .brand img{flex-shrink:0}.visitor-shell .header-right{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.theme-toggle{font-size:12px;white-space:nowrap;padding:8px 12px}.theme-row{display:flex;justify-content:flex-end;padding-top:12px}.visitor-shell .hero{padding:var(--heroPadding,24px) 0;gap:16px}.visitor-shell .hero h1{font-size:var(--headingSize,42px);letter-spacing:-1.4px;margin-bottom:0;line-height:1.15}.visitor-shell .hero p{margin-top:10px;font-size:var(--bodySize,15px);max-width:650px}.visitor-shell .eyebrow{margin-bottom:12px}.visitor-shell .hero-art{width:100px;height:100px;font-size:46px;border-radius:26px}.visitor-shell .banner{margin-bottom:var(--sectionGap,16px);padding:9px 0}.static-banner .banner-track{animation:none;width:auto}.static-banner .banner-track span{padding:0 12px}.visitor-shell .toolbar{margin:var(--sectionGap,16px) 0;gap:12px}.visitor-shell .toolbar h2{font-size:22px}.visitor-shell .filters{margin-bottom:var(--sectionGap,16px)}.visitor-shell .grid{gap:var(--gridGap,16px);padding-bottom:var(--sectionGap,16px)}.visitor-shell .card{min-height:var(--cardHeight,215px);overflow-wrap:anywhere}.visitor-shell .card.photo{background:var(--card-color);justify-content:space-between}.visitor-shell .card.photo:after{background:linear-gradient(180deg,transparent 15%,rgb(0 0 0 / var(--overlay-opacity,.75)))}.visitor-shell .card-top,.visitor-shell .card-copy{padding:var(--cardPadding,18px)}.visitor-shell .card-copy{margin-top:auto}.visitor-shell .card-copy h3{font-size:var(--cardTitleSize,21px);line-height:1.25;margin-bottom:5px}.visitor-shell .card-copy p{line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;padding-right:20px}.visitor-shell .arrow{right:var(--cardPadding,18px);bottom:var(--cardPadding,18px)}.visitor-shell .footer{padding:var(--footerPadding,18px) 0;min-height:0;gap:12px}.visitor-shell .empty{padding:28px 15px}.design-group{border:1px solid var(--line);border-radius:16px;padding:18px;margin:0;min-width:0}.design-group legend{padding:0 8px;font-weight:650;color:var(--ink)}.design-group .check{padding:3px 0}.design-group .form-grid{gap:14px}
@media(max-width:900px){.visitor-shell .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visitor-shell .hero-art{display:none}}
@media(max-width:560px){.visitor-shell{padding-inline:var(--mobilePadding,12px)}.visitor-shell .header{min-height:var(--headerHeight,68px)}.visitor-shell .brand{font-size:16px}.visitor-shell .mark{width:30px;height:30px;font-size:20px}.visitor-shell .brand img{width:30px;height:30px}.visitor-shell .header .pill{display:inline-block;font-size:9px;letter-spacing:1px}.visitor-shell .hero{padding:var(--heroPadding,24px) 0}.visitor-shell .hero h1{font-size:var(--mobileHeadingSize,28px);letter-spacing:-.6px}.visitor-shell .hero p{font-size:var(--bodySize,15px)}.visitor-shell .toolbar{flex-direction:row;flex-wrap:wrap;align-items:center}.visitor-shell .toolbar h2{font-size:19px}.visitor-shell .search{max-width:none;width:100%}.visitor-shell .grid{grid-template-columns:repeat(var(--mobile-cols,2),minmax(0,1fr));gap:var(--mobileGap,10px)}.visitor-shell .card{min-height:var(--mobileCardHeight,170px)}.visitor-shell .card-top,.visitor-shell .card-copy{padding:var(--mobileCardPadding,12px)}.visitor-shell .card-copy h3{font-size:var(--mobileCardTitleSize,16px);padding-right:16px}.visitor-shell .card-copy p{font-size:11px;-webkit-line-clamp:2;padding-right:12px}.visitor-shell .card-icon{width:30px;height:30px;border-radius:9px;font-size:17px}.visitor-shell .card-icon img{width:22px;height:22px}.visitor-shell .card-kind{font-size:8px;padding:4px;letter-spacing:.2px}.visitor-shell .arrow{font-size:19px;bottom:var(--mobileCardPadding,12px);right:var(--mobileCardPadding,12px)}.visitor-shell .filters{gap:6px}.visitor-shell .filters button{padding:6px 11px}.visitor-shell .footer{flex-direction:row;flex-wrap:wrap}.design-group{padding:12px}.theme-toggle{padding:7px 10px}}

.visitor-shell .card-top:has(> .card-kind:only-child){justify-content:flex-end}.visitor-shell .footer:has(> span:only-child){justify-content:space-between}
