*,:before,:after{box-sizing:border-box}html{background:var(--background);scroll-padding-top:100px}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1,"calt" 1;margin:0}a{color:var(--accent);overflow-wrap:anywhere;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent-highlight);color:var(--foreground)}h1,h2,h3,h4,h5,h6{color:var(--foreground);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}h1{letter-spacing:var(--tracking-display);margin:0 0 var(--space-24);font-size:clamp(32px,4.5vw,64px)}h2{font-size:var(--font-size-32)}h3{font-size:var(--text-xl)}h1,h2,h3,p{text-wrap:pretty}img,video,iframe,svg{max-width:100%}img,video{height:auto}button,input,select,textarea{font:inherit}button{cursor:pointer}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-inner);background:var(--surface);min-width:0;max-width:100%;color:var(--foreground);padding:var(--space-10) var(--space-14)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}[hidden]{display:none!important}.o-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.o-btn,.mw-ui-button{justify-content:center;align-items:center;gap:var(--space-8);min-height:44px;padding:var(--space-10) var(--space-20);border:1px solid var(--transparent);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-ui);background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm);text-decoration:none;display:inline-flex}.o-btn:hover,.mw-ui-button:hover{filter:brightness(1.1);text-decoration:none}.o-btn--primary{background:var(--accent);color:var(--accent-ink)}.o-btn--outline{border-color:var(--border-strong);background:var(--background);color:var(--foreground)}.o-btn--ghost,.o-btn--icon{background:var(--transparent);color:var(--text-muted);box-shadow:none}.o-btn--ghost:hover,.o-btn--icon:hover{background:var(--surface-raised);color:var(--foreground)}.o-btn--icon{width:44px;min-width:44px;padding:var(--space-10)}.o-btn--sm{padding:var(--space-8) var(--space-16);font-size:var(--font-size-13)}.o-btn--lg{min-height:48px;padding:var(--space-12) var(--space-24);font-size:var(--text-base)}button:disabled,.o-btn[aria-disabled=true]{opacity:.5;cursor:default}.o-chip,.o-badge{align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-12);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-body);font-size:var(--text-xs);font-weight:var(--weight-medium);display:inline-flex}a.o-chip,button.o-chip{min-height:44px}.o-chip--accent,.o-chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.o-card,.o-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-24);min-width:0}a.o-card:hover{box-shadow:var(--shadow-hover);text-decoration:none}.o-stat{gap:var(--space-6);flex-direction:column;display:flex}.o-stat__value{font-size:var(--font-size-30);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}.o-stat__label{font-size:var(--text-xs);color:var(--text-muted)}.o-segmented{padding:var(--space-4);gap:var(--space-4);background:var(--surface-raised);border-radius:var(--radius-pill);flex-wrap:wrap;display:inline-flex}.o-segmented>*{min-height:44px;padding:var(--space-10) var(--space-20);border-radius:var(--radius-pill);background:var(--transparent);color:var(--text-muted);border:0}.o-segmented [aria-selected=true],.o-segmented [aria-current=page]{background:var(--background);color:var(--foreground);box-shadow:var(--shadow-tab)}.o-breadcrumbs{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-24)}.o-breadcrumbs ol{gap:var(--space-8);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.o-breadcrumbs li{align-items:center;gap:var(--space-8);min-width:0;display:inline-flex}.o-breadcrumbs a{color:var(--text-muted);align-items:center;min-height:44px;display:inline-flex}.o-metadata{margin:0}.o-metadata>div{gap:var(--space-16);padding:var(--space-12) 0;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.o-metadata dt{color:var(--text-muted)}.o-metadata dd{overflow-wrap:anywhere;margin:0}.o-photo-grid{gap:var(--space-16);grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));display:grid}.o-photo-tile{border-radius:var(--radius-card);background:var(--surface);min-width:0;display:block;position:relative;overflow:hidden}.o-photo-tile img{object-fit:cover;width:100%;display:block}.o-masonry{columns:4 240px;column-gap:var(--space-16)}.o-masonry>*{break-inside:avoid;margin-bottom:var(--space-16)}.o-pagination{align-items:center;gap:var(--space-12);margin:var(--space-24) 0;color:var(--text-muted);flex-wrap:wrap;display:flex}.o-pagination>[aria-disabled]{min-height:44px;padding:var(--space-10) var(--space-16);align-items:center;display:inline-flex}.o-empty-state,.o-error-state{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:var(--space-40);text-align:center;margin:var(--space-24) 0}.o-empty-state>svg,.o-error-state>svg{color:var(--accent)}.o-empty-state p,.o-error-state p{color:var(--text-muted)}.o-section-header{justify-content:space-between;align-items:center;gap:var(--space-20);margin-bottom:var(--space-24);flex-wrap:wrap;display:flex}.o-section-header h2{margin:0}.o-section-header p{color:var(--text-muted);margin:var(--space-8) 0 0}.np-special-form fieldset{border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-20);background:var(--surface)}.np-field{margin-bottom:var(--space-16)}.np-field label{margin-bottom:var(--space-6);display:block}.np-search-row{gap:var(--space-8);flex-wrap:wrap;display:flex}.np-search-row input{flex:200px}@media (width<=767px){.o-card,.o-stat{padding:var(--space-20)}.o-empty-state,.o-error-state{padding:var(--space-24)}}
