@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,700;1,700&display=swap");
:root,[data-theme="light"]{
  --page-bg:#f5f1ec;--surface:#fffaf6;--surface-raised:#fff;--surface-muted:#ece6e1;
  --text-primary:#20242b;--text-secondary:#5f6670;--text-soft:#747b85;--text-inverse:#fffaf6;
  --border:#d6cec8;--border-strong:#bcb3ad;--blue:#537da8;--blue-hover:#41688f;
  --blue-soft:#dce7f2;--pink:#c36789;--pink-hover:#a95072;--pink-soft:#f0dce5;--purple:#7456a6;--purple-hover:#60458f;--purple-soft:#e7dff1;
  --yellow:#c49b3c;--yellow-hover:#a6812e;--yellow-soft:#f1e4bd;--red:#b95559;
  --red-hover:#984247;--red-soft:#eed8da;--success:#4d745d;--danger:#b95559;
  --shadow-small:0 4px 14px rgba(40,34,30,.07);--shadow-large:0 16px 38px rgba(40,34,30,.1);
  color-scheme:light
}
[data-theme="dark"]{
  --page-bg:#171a20;--surface:#20242c;--surface-raised:#282d37;--surface-muted:#303640;
  --text-primary:#f2eeea;--text-secondary:#b8bbc3;--text-soft:#9da2ac;--text-inverse:#171a20;
  --border:#3d444f;--border-strong:#555d69;--blue:#7198c1;--blue-hover:#88add2;
  --blue-soft:#293b4c;--pink:#d47d9e;--pink-hover:#e192ae;--pink-soft:#47313c;--purple:#a58acb;--purple-hover:#b8a0d8;--purple-soft:#393047;
  --yellow:#d1b25e;--yellow-hover:#dfc477;--yellow-soft:#443d29;--red:#ce7378;
  --red-hover:#dc898d;--red-soft:#4a3035;--success:#76a287;--danger:#ce7378;
  --shadow-small:0 5px 16px rgba(0,0,0,.22);--shadow-large:0 18px 42px rgba(0,0,0,.34);
  color-scheme:dark
}
*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%}body{margin:0;max-width:100%;overflow-x:hidden;background:var(--page-bg);color:var(--text-primary);font:16px/1.55 "DM Sans",sans-serif}img{max-width:100%}a{color:var(--blue)}h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.02;letter-spacing:-.035em}h1{font-size:clamp(3.1rem,8vw,7rem)}h2{font-size:clamp(2.25rem,5vw,4.5rem)}p{color:var(--text-secondary)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{min-height:76px;padding:10px clamp(18px,5vw,72px);display:flex;align-items:center;gap:24px;position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;color:var(--text-primary);font-size:1.15rem;font-weight:700;text-decoration:none}.brand-logo{width:42px;height:42px;object-fit:contain}.public-nav{display:flex;align-items:center;justify-content:space-between;gap:22px;flex:1;min-width:0}.public-main-nav,.public-user-nav{display:flex;align-items:center;gap:18px}.public-nav a{color:var(--text-primary);text-decoration:none;white-space:nowrap}.public-nav a:hover{color:var(--blue)}.mobile-nav{display:none}.theme-switcher{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted);flex:0 0 auto}.theme-switcher .button{min-height:32px;padding:.35rem .55rem}.theme-switcher .active{background:var(--blue);color:var(--text-inverse)}
.button,button{appearance:none;min-height:44px;padding:.7rem 1.1rem;border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:inherit;font-weight:600;line-height:1.15;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s}.button:hover,button:hover{transform:translateY(-1px)}.button:active,button:active{transform:none}.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 35%,transparent);outline-offset:2px}.button:disabled,button:disabled{opacity:.62;cursor:not-allowed;transform:none}
.button-primary,.primary-action,.primary-button{background:var(--blue);color:var(--text-inverse);border-color:var(--blue)}.button-primary:hover,.primary-action:hover,.primary-button:hover{background:var(--blue-hover);color:var(--text-inverse)}.button-secondary,.secondary-action{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border-strong)}.button-secondary:hover,.secondary-action:hover{background:var(--surface-muted)}.button-community,.button-accent{background:var(--pink);color:var(--text-inverse)}.button-community:hover{background:var(--pink-hover);color:var(--text-inverse)}.button-warning{background:var(--yellow-soft);border-color:var(--yellow);color:var(--text-primary)}.button-warning:hover{background:color-mix(in srgb,var(--yellow-soft) 70%,var(--yellow))}.button-danger{background:var(--red);color:#fff}.button-danger:hover{background:var(--red-hover);color:#fff}.button-ghost{background:transparent;color:var(--text-primary)}.button-ghost:hover{background:var(--surface-muted)}.button-small{min-height:36px;padding:.45rem .7rem;font-size:.85rem}.button-large{min-height:50px;padding:.85rem 1.25rem}.button-icon{width:44px;padding:0}.button-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button-loading{pointer-events:none;opacity:.8}.button-loading::after{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}
input,select,textarea{width:100%;min-width:0;min-height:44px;padding:.7rem .8rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-raised);color:var(--text-primary);font:inherit}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-soft);opacity:1}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:var(--blue)}input[type=file]{padding:.45rem}input[type=file]::file-selector-button{padding:.5rem .75rem;margin-right:.7rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--blue-soft);color:var(--text-primary);font-weight:600}
.hero{min-height:650px;padding:clamp(65px,9vw,120px) clamp(20px,9vw,140px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.5fr);align-items:center;gap:50px;background:var(--surface-muted);border-bottom:1px solid var(--border)}.hero-copy{max-width:940px}.hero h1{margin:15px 0;max-width:850px}.hero h1 em{display:block;color:var(--pink)}.hero p{max-width:600px;font-size:1.12rem}.hero-pin{justify-self:center;width:min(260px,70vw);aspect-ratio:.9;display:grid;place-content:center;text-align:center;clip-path:polygon(50% 0,92% 17%,100% 62%,76% 100%,24% 100%,0 62%,8% 17%);background:var(--pink);color:var(--text-inverse);filter:drop-shadow(12px 18px 0 color-mix(in srgb,var(--text-primary) 12%,transparent));transform:rotate(7deg)}.hero-pin div{font-size:4rem}.hero-pin span{font-size:.75rem;font-weight:700;letter-spacing:.14em}.hero-actions{margin-top:26px}
.collection{padding:80px clamp(18px,6vw,90px) 110px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:24px;margin-bottom:28px;border-bottom:1px solid var(--border)}.section-heading h2{margin:8px 0 0}.eyebrow{text-transform:uppercase;font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--text-soft)}
.pin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.latest-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.pin-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:13px;background:var(--surface-raised);box-shadow:var(--shadow-small);transition:transform .18s,box-shadow .18s}.pin-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-large)}.pin-card-image-frame{aspect-ratio:1;display:grid;place-items:center;padding:12px;background:var(--surface-muted);overflow:hidden}.pin-card-image{width:100%;height:100%;object-fit:contain}.pin-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue-soft),var(--surface-muted));color:var(--text-soft);font:700 2.5rem "Playfair Display",serif}.pin-card-content{padding:18px}.pin-card-meta{display:flex;justify-content:space-between;gap:10px;color:var(--text-soft);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.pin-card-id{color:var(--blue);font-weight:700}.pin-card-title{margin:.7rem 0;font-size:1.45rem}.pin-card-title a{color:var(--text-primary);text-decoration:none}.pin-card-status{min-height:2.8em;margin:.35rem 0}.pin-card-actions{display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--border);color:var(--text-soft);font-size:.75rem}.pin-skeleton{aspect-ratio:.72;border-radius:13px;background:linear-gradient(90deg,var(--surface-muted),var(--surface-raised),var(--surface-muted));background-size:200% 100%;animation:skeleton 1.2s infinite}@keyframes skeleton{to{background-position:-200% 0}}
.about{padding:100px clamp(20px,9vw,140px);background:var(--surface);border-block:1px solid var(--border)}.about p{max-width:640px;font-size:1.1rem}.about h2{margin:.75rem 0}footer{padding:30px clamp(18px,6vw,90px);display:flex;justify-content:space-between;gap:15px;color:var(--text-soft);font-size:.85rem}
.page-shell{width:min(1240px,calc(100% - 40px));margin:auto;padding:65px 0 100px}.page-shell.narrow{width:min(780px,calc(100% - 40px))}.page-intro{max-width:820px;margin-bottom:36px}.page-intro h1,.page-shell>h1{margin:.7rem 0}.catalog-filters,.public-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:22px;margin-bottom:28px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-small)}.catalog-filters>*{min-width:0}.catalog-filters label,.public-form label{display:grid;align-content:start;gap:6px;color:var(--text-primary);font-size:.85rem;font-weight:600}.filter-checks{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap}.filter-checks label{display:flex;align-items:center}.filter-actions{grid-column:1/-1}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.public-form.compact{grid-template-columns:1fr auto;align-items:end}.results-bar{display:flex;justify-content:space-between;padding:14px 0;margin-bottom:22px;border-bottom:1px solid var(--border)}.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:34px}.pagination>*:last-child{justify-self:end}
.park-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.park-card,.panel-card{padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised);box-shadow:var(--shadow-small)}.park-card h2{font-size:2rem}.park-card a{color:var(--text-primary);text-decoration:none}
.pin-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:46px}.primary-photo{aspect-ratio:1;display:grid;place-items:center;padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted)}.primary-photo img{width:100%;height:100%;object-fit:contain}.photo-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}.gallery-thumb{width:100%;height:auto;aspect-ratio:1;padding:4px;border-color:var(--border)}.gallery-thumb img{width:100%;height:100%;object-fit:contain}.pin-information h1{margin:.8rem 0}.facts{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--border)}.facts dt,.facts dd{margin:0;padding:10px;border-bottom:1px solid var(--border)}.facts dt{color:var(--text-soft)}.pin-actions{margin-top:22px}.inline-form{display:grid;gap:12px;margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.inline-form[hidden]{display:none}.pin-history{margin-top:36px;padding-top:20px;border-top:1px solid var(--border)}.pin-history h2{font-size:2rem}
.stat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:25px}.stat-cards article{padding:18px;border:1px solid var(--border);border-radius:11px;background:var(--surface-raised)}.stat-cards strong,.stat-cards span{display:block}.collection-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.collection-state{padding:0 18px 18px;color:var(--text-soft);font-size:.78rem}.empty-state,.error-state,.loading-state{grid-column:1/-1;padding:42px 20px;text-align:center;border:1px dashed var(--border);border-radius:12px;color:var(--text-secondary)}.error-state{border-color:var(--red);background:var(--red-soft);color:var(--text-primary)}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--page-bg)}.auth-card{width:min(460px,100%);padding:36px;border:1px solid var(--border);border-radius:14px;background:var(--surface-raised);box-shadow:var(--shadow-large)}.auth-card h1{font-size:clamp(2.6rem,10vw,4rem);margin:20px 0}.auth-card form,.auth-card label{display:grid;gap:8px}.auth-card label{margin:15px 0;font-weight:600}.auth-card .check{display:flex;align-items:center}.form-message{min-height:1.5em;color:var(--red)}
@media(max-width:1150px){.latest-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.public-nav{gap:12px}.public-main-nav,.public-user-nav{gap:11px}}
@media(max-width:1100px){.mobile-nav{display:inline-flex;margin-left:auto}.site-header{flex-wrap:wrap}.public-nav{display:none;order:4;flex:1 1 100%;align-items:stretch;padding:12px 0}.public-nav.open{display:grid}.public-main-nav,.public-user-nav{display:grid;gap:4px}.public-nav a,.public-nav button{width:100%;justify-content:flex-start;padding:10px}.theme-switcher{order:3}}
@media(max-width:900px){.mobile-nav{display:inline-flex;margin-left:auto}.site-header{flex-wrap:wrap}.public-nav{display:none;order:4;flex:1 1 100%;align-items:stretch;padding:12px 0}.public-nav.open{display:grid}.public-main-nav,.public-user-nav{display:grid;gap:4px}.public-nav a,.public-nav button{width:100%;justify-content:flex-start;padding:10px}.theme-switcher{order:3}.hero{grid-template-columns:1fr;padding-top:70px}.hero-pin{width:190px}.pin-grid,.park-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-filters,.public-form{grid-template-columns:repeat(2,minmax(0,1fr))}.pin-detail{grid-template-columns:1fr}}
@media(max-width:700px){body.public-menu-open{overflow:hidden}.site-header{padding:9px 12px;gap:8px}.brand{font-size:1rem}.brand-logo{width:36px;height:36px}.theme-switcher{order:4;flex:1 1 100%;display:grid;grid-template-columns:repeat(3,1fr)}.public-nav{order:5;max-height:calc(100dvh - 120px);overflow:auto}.hero{min-height:auto;padding:50px 16px 60px;gap:35px}.hero h1{font-size:clamp(3rem,17vw,4.5rem);overflow-wrap:anywhere}.hero p{font-size:1rem}.hero-actions{display:grid}.hero-actions .button{width:100%;white-space:normal}.collection{padding:55px 12px}.section-heading{align-items:start;flex-direction:column}.latest-grid,.pin-grid,.park-grid,.stat-cards{grid-template-columns:1fr}.page-shell,.page-shell.narrow{width:calc(100% - 24px);padding:40px 0 70px}.page-intro h1,.page-shell>h1{font-size:clamp(2.7rem,15vw,4.2rem);overflow-wrap:anywhere}.catalog-filters,.public-form,.public-form.compact{grid-template-columns:1fr;padding:14px}.form-row{grid-template-columns:1fr}.filter-checks{display:grid}.filter-actions,.filter-actions .button{width:100%}.pagination{grid-template-columns:1fr 1fr}.pagination>span:nth-child(2){grid-column:1/-1;grid-row:1;text-align:center}.pagination .button{width:100%}.facts{grid-template-columns:minmax(105px,38%) 1fr}.pin-actions,.collection-tabs{display:grid}.pin-actions>*{width:100%}.photo-gallery{grid-template-columns:repeat(4,1fr)}.auth-page{padding:12px}.auth-card{padding:25px 18px}.about{padding:65px 16px}footer{padding:25px 14px;flex-direction:column}.button-group{gap:8px}}
@media(max-width:360px){.page-shell,.page-shell.narrow{width:calc(100% - 18px)}.hero{padding-inline:10px}.hero h1{font-size:2.85rem}.photo-gallery{grid-template-columns:repeat(3,1fr)}.auth-card{padding-inline:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Modern color accents: blue actions, pink community, purple secondary, yellow attention, red danger. */
.button-secondary,.secondary-action{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--purple) 22%,transparent)}
.button-secondary:hover,.secondary-action:hover{background:var(--purple-hover);color:#fff}
.hero{background:
  radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--yellow) 22%,transparent),transparent 30%),
  radial-gradient(circle at 12% 82%,color-mix(in srgb,var(--pink) 20%,transparent),transparent 32%),
  linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--purple-soft) 55%,var(--page-bg)))}
.pin-card{position:relative}.pin-card::before{content:"";position:absolute;z-index:2;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--purple),var(--blue),var(--red))}
.park-card,.panel-card,.auth-card{box-shadow:var(--shadow-small)}
