:root{--bg: #f4f1ed;--ink: #15120f;--muted: #6f665c;--accent: #d08959;--accent-strong: #b16c3f;--panel: rgba(255, 255, 255, .92);--overlay: rgba(16, 12, 9, .65);--stroke: rgba(21, 18, 15, .16);--shadow: 0 24px 60px rgba(14, 11, 9, .25);--thumb-size: 80px;--thumb-cols: 5;--thumb-rows: 10;color-scheme:light;font-family:Space Grotesk,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh;line-height:1.5}body:before,body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none}body:before{background:radial-gradient(circle at 10% 10%,rgba(255,234,212,.9),transparent 55%),radial-gradient(circle at 80% 20%,rgba(206,223,212,.7),transparent 60%),radial-gradient(circle at 60% 80%,rgba(255,220,204,.65),transparent 55%)}body:after{z-index:-1;background:repeating-linear-gradient(135deg,rgba(21,18,15,.06),rgba(21,18,15,.06) 1px,transparent 1px,transparent 14px);opacity:.5}img{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;padding:0}a{color:inherit;text-decoration:none}.app{min-height:100vh;padding:0;display:flex;flex-direction:column;gap:0;position:relative;z-index:1}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;position:relative;z-index:2}.topbar h1{margin:6px 0 0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,3.2vw,3.4rem);letter-spacing:-.02em}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--muted);margin:0}.topbar-meta{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.stage{flex:1;display:flex;align-items:center;justify-content:flex-start;position:relative;z-index:2}.stage-copy{max-width:520px;font-size:1.05rem;color:var(--ink);background:#ffffffb3;padding:18px 20px;border-radius:18px;border:1px solid var(--stroke);box-shadow:var(--shadow)}.stage-copy p{margin:0 0 8px}.stage-copy p:last-child{margin-bottom:0}.stage-muted{color:var(--muted);font-size:.9rem}.thumbnail-bar{position:fixed;left:0;right:0;bottom:0;top:0;height:100vh;width:100vw;background:transparent;overflow:hidden;z-index:0}.thumbnail-grid{display:grid;grid-template-columns:repeat(var(--thumb-cols),var(--thumb-size));grid-template-rows:repeat(var(--thumb-rows),var(--thumb-size));gap:0;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(var(--thumb-cols) * var(--thumb-size));height:calc(var(--thumb-rows) * var(--thumb-size))}.thumbnail-item{width:var(--thumb-size);height:var(--thumb-size);border-radius:0;overflow:hidden;background:#fff6;cursor:pointer;transition:transform .16s ease;position:relative}.thumbnail-item img{width:100%;height:100%;object-fit:contain;transition:transform .18s ease}.thumbnail-item:hover img{transform:scale(1.05)}.thumbnail-item.active{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.thumbnail-item:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.thumbnail-item:after{content:attr(data-flower-id);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0f0c0999;color:#fff;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:0;transition:opacity .16s ease;pointer-events:none}.thumbnail-item:hover:after,.thumbnail-item:focus-visible:after{opacity:1}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:stretch;justify-content:stretch}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay);border:none;padding:0;cursor:pointer;color:transparent}.modal-card{position:relative;z-index:1;margin:0;border-radius:0;background:var(--panel);border:1px solid var(--stroke);box-shadow:var(--shadow);display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.modal-card.grid-view{background:#0f0c09;border-color:transparent;justify-content:center;align-items:center}.modal-tools{position:absolute;top:18px;right:18px;display:flex;gap:10px;z-index:2}.icon-button,.close-button{border:1px solid var(--stroke);border-radius:999px;padding:6px 14px;font-size:.85rem;background:#ffffffbf;transition:all .18s ease;display:inline-flex;align-items:center;justify-content:center}.icon-button{width:38px;height:38px;padding:0}.icon-button:hover,.close-button:hover{border-color:var(--accent-strong);color:var(--accent-strong)}.icon-button.active{background:var(--ink);border-color:var(--ink)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.grid-icon{display:grid;grid-template-columns:repeat(2,6px);grid-template-rows:repeat(2,6px);gap:3px}.grid-icon span{width:6px;height:6px;background:var(--ink);border-radius:1px}.icon-button.active .grid-icon span{background:#fff}.modal-content{height:100%;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:22px;padding:56px 22px 40px}.modal-media{width:min(88vw,680px);display:flex;flex-direction:column;gap:16px}.modal-image{width:100%;aspect-ratio:1 / 1;background:#ffffffb3;border-radius:0;border:1px solid var(--stroke);padding:10px;box-shadow:0 16px 32px #0c0a0838;display:flex}.modal-image img{width:100%;height:100%;object-fit:contain;border-radius:0}.modal-variants{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.variant-button{border:1px solid var(--stroke);border-radius:999px;padding:6px 14px;font-size:.85rem;transition:all .18s ease;background:#fff9}.variant-button:hover{border-color:var(--accent);box-shadow:0 10px 18px #d0895933}.variant-button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.modal-details{display:flex;flex-direction:column;gap:14px;max-width:520px;align-self:start}.modal-title-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.modal-title{margin:0;font-size:clamp(1.6rem,2.6vw,2.6rem);font-family:Fraunces,Georgia,serif}.modal-project{color:var(--muted);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}.opensea-link{display:inline-flex;align-items:center;margin-left:4px;opacity:.8;transition:opacity .18s ease,transform .18s ease}.opensea-link:hover{opacity:1;transform:translateY(-1px)}.opensea-logo{width:18px;height:18px;display:block}.modal-subtitle{margin:0;color:var(--muted);font-size:.9rem}.modal-description{margin:0;color:var(--muted)}.modal-grid{display:grid;gap:12px;width:100%;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.modal-grid span{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.modal-grid strong{display:block;font-weight:600;font-size:.92rem}.modal-attributes{display:flex;flex-wrap:wrap;gap:8px}.modal-attributes span{border-radius:999px;padding:4px 10px;background:#d089592e;font-size:.75rem}.download-toggle{margin-left:auto}.fullscreen-icon{width:16px;height:16px;border:2px solid currentColor;border-radius:2px;box-sizing:border-box}.download-icon{width:18px;height:18px;display:block;position:relative;box-sizing:border-box}.download-icon:before{content:"";position:absolute;left:50%;top:2px;width:2px;height:10px;background:currentColor;transform:translate(-50%)}.download-icon:after{content:"";position:absolute;left:50%;top:9px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translate(-50%) rotate(45deg)}.nav-icon{width:8px;height:8px;border:solid currentColor;border-width:0 2px 2px 0;display:inline-block}.nav-icon.prev{transform:rotate(135deg)}.nav-icon.next{transform:rotate(-45deg)}.modal-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0;background:#050403fa;display:flex;align-items:center;justify-content:center;padding:24px;z-index:3}.modal-fullscreen img{max-width:100%;max-height:100%;object-fit:contain}.fullscreen-tools{position:absolute;top:18px;right:18px;display:flex;gap:10px;z-index:4}.modal-grid-view{width:min(80vmin,840px);height:min(80vmin,840px);display:grid;place-content:center}.modal-grid-view img{width:100%;height:100%;object-fit:contain;border-radius:6px}@media (min-width: 900px){.modal-content{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);justify-items:stretch;align-items:center;padding:64px 40px 48px;gap:32px}.modal-media{width:min(50vw,680px);justify-self:end}.modal-details{justify-self:start}.app{padding:32px 36px}}
