/* Shared interface: quiet surfaces, deliberate focus and short transitions. */
@view-transition { navigation: auto; }
:root { --ui-paper:#fffdf7; --ui-ink:#302d28; --ui-accent:#f5d04e; --ui-line:#302d2826; --ui-motion:180ms; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
:focus-visible { outline:3px solid var(--ui-ink); outline-offset:5px; }
body.gnm-public { background:var(--ui-paper); color:var(--ui-ink); }
.gnm-public .sticky-nav { transform:none; opacity:1; visibility:visible; background:var(--ui-paper); border-bottom:0; backdrop-filter:none; }
.gnm-public .sticky-nav.is-visible { box-shadow:none; padding-top:0; padding-bottom:0; }
.gnm-public .no-scrollbar, .gnm-public { scrollbar-width:auto; }
.gnm-public section { padding-top:clamp(48px,8vw,100px); padding-bottom:clamp(48px,8vw,100px); }
.gnm-public section h2 { font-size:clamp(32px,5vw,64px); line-height:1.08; letter-spacing:-.035em; }
.gnm-public section p { line-height:1.6; }
.gnm-public .shadow-xl { box-shadow:none; }
.gnm-public .reveal-on-scroll { opacity:1; transform:none; }
.gnm-public img { border-radius:4px; }
/* Navigation calls to action: rounded pills, no rule line under the bar. */
.gnm-public .sticky-nav a[href="vendor.html"],
.gnm-public .sticky-nav a[href^="https://canva.link"] { border-radius:999px; }
.gnm-public .sticky-nav a[href^="https://canva.link"] { border-width:1px; }
.gnm-public .sticky-nav .max-w-7xl { max-width:none; padding-left:clamp(1rem,2.5vw,2.5rem); padding-right:clamp(1rem,2.5vw,2.5rem); }
@media(min-width:768px) and (max-width:1023px) { .gnm-public .sticky-nav .max-w-7xl > a > span { display:none; } }
.gnm-public :is(a,button) { transition:background-color var(--ui-motion),color var(--ui-motion),border-color var(--ui-motion); }
.gnm-public #mobile-menu { transition:transform 220ms ease; }
.gnm-admin { background:var(--ui-paper); }
.gnm-admin > header { flex-wrap:wrap; gap:12px; }
.gnm-admin .view-panel.active, .gnm-admin #detail-modal.open #modal-panel { animation:ui-enter var(--ui-motion) ease-out; }
.gnm-admin .view-btn, .gnm-admin .status-filter-btn { min-height:42px; }
.gnm-admin .table-wrap { border:1px solid var(--ui-line); border-radius:8px; overflow:auto; }
.gnm-admin #submissions-table th { background:#f3f0e8; }
.gnm-admin #submissions-table td { padding-top:16px; padding-bottom:16px; }
.gnm-admin #submissions-table tbody tr:hover { background:#f5d04e16; }
.admin-search { display:flex; align-items:center; gap:10px; margin-left:auto; font-size:13px; font-weight:600; }
.admin-search input { padding:10px 14px; background:var(--ui-paper); border:1px solid var(--ui-line); border-radius:6px; width:min(260px,45vw); }
.ui-empty { padding:32px; text-align:center; border:1px dashed var(--ui-line); margin:20px 24px; }
.ui-empty[hidden] { display:none; }
@keyframes ui-enter { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media(max-width:640px) { .admin-search { margin-left:0; width:100%; } .admin-search input { width:100%; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } ::view-transition-old(root),::view-transition-new(root) { animation:none; } }
