:root{color:#151515;background:#f8f6f1;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.link-button{align-items:center;background:var(--accent, #0f766e);border:1px solid transparent;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;min-height:44px;padding:0 18px;transition:background-color .18s var(--ease-out),border-color .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .14s var(--ease-out);white-space:nowrap}button:active,.link-button:active,.photo-tile:active,.topbar a:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.55}.secondary{background:transparent;border-color:color-mix(in srgb,var(--fg, #171717) 16%,transparent);color:var(--fg, #171717)}.home-shell,.center-shell{align-items:center;background:radial-gradient(circle at 18% 16%,rgba(15,118,110,.16),transparent 36%),linear-gradient(180deg,#fbfaf7,#f1eee7);display:flex;min-height:100vh;padding:clamp(20px,5vw,56px)}.center-shell{flex-direction:column;gap:18px;justify-content:center}.home-panel{display:grid;gap:42px;margin:0 auto;max-width:960px;width:100%}.eyebrow{color:var(--accent, #0f766e);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 12px;text-transform:uppercase}h1{font-size:clamp(2.7rem,8vw,6.25rem);letter-spacing:0;line-height:.95;margin:0;max-width:850px}h2{font-size:1.35rem;margin:0}.intro{color:color-mix(in srgb,var(--fg, #171717) 72%,transparent);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.55;margin:22px 0 0;max-width:720px}.intro.compact{max-width:610px}.create-form{display:grid;gap:12px;max-width:640px}.create-form label,.field{color:color-mix(in srgb,var(--fg, #171717) 72%,transparent);display:grid;font-size:.92rem;font-weight:700;gap:8px}.form-row{display:flex;gap:10px}input,select{background:color-mix(in srgb,var(--bg, #fff) 82%,white);border:1px solid color-mix(in srgb,var(--fg, #171717) 14%,transparent);border-radius:12px;color:var(--fg, #171717);min-height:48px;padding:0 14px;transition:border-color .16s var(--ease-out),box-shadow .16s var(--ease-out);width:100%}input:focus,select:focus{border-color:color-mix(in srgb,var(--accent) 58%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);outline:none}.app-shell{--tile-size: 260px;background:var(--bg);color:var(--fg);font-family:var(--font);min-height:100vh;padding:clamp(16px,3vw,30px)}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:0 auto;max-width:1320px;min-height:48px;padding:2px 0;width:100%}.brand,.back-link,.download-link,.topbar nav a{align-items:center;display:inline-flex;font-weight:800;gap:8px;transition:color .16s var(--ease-out),transform .14s var(--ease-out)}.topbar nav{display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-end}.nav-action{background:color-mix(in srgb,var(--fg) 5%,transparent);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);border-radius:999px;min-height:40px;padding:0 13px}.gallery-hero,.tool-page{margin:clamp(52px,8vw,96px) auto 34px;max-width:1320px;width:100%}.gallery-hero{align-items:end;display:flex;justify-content:space-between;gap:24px}.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.hero-badges span{align-items:center;background:color-mix(in srgb,var(--fg) 6%,transparent);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);border-radius:999px;color:color-mix(in srgb,var(--fg) 72%,transparent);display:inline-flex;font-size:.78rem;font-weight:800;gap:6px;min-height:30px;padding:0 10px}.gallery-hero p{color:color-mix(in srgb,var(--fg) 65%,transparent);font-weight:700;margin:16px 0 0}.photo-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(var(--tile-size),1fr));margin:0 auto;max-width:1320px;width:100%}.photo-grid.compact{--tile-size: 190px;gap:10px}.photo-grid.masonry{align-items:start}.photo-tile{display:grid;gap:10px;min-width:0;transition:filter .18s var(--ease-out),transform .16s var(--ease-out)}.photo-tile img{aspect-ratio:4 / 3;background:color-mix(in srgb,var(--fg) 8%,transparent);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);border-radius:16px;display:block;height:auto;object-fit:contain;overflow:hidden;width:100%}.photo-grid.masonry .photo-tile:nth-child(3n+1) img{aspect-ratio:4 / 3}.photo-grid.masonry .photo-tile:nth-child(3n+2) img{aspect-ratio:4 / 3}.photo-caption,.photo-meta{color:color-mix(in srgb,var(--fg) 62%,transparent);font-size:.9rem}.photo-caption{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.photo-caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-caption small{color:color-mix(in srgb,var(--fg) 42%,transparent);flex:0 0 auto;font-size:.82rem;font-weight:700}.empty-state{align-items:center;background:color-mix(in srgb,var(--fg) 4%,transparent);border:1px dashed color-mix(in srgb,var(--fg) 22%,transparent);border-radius:18px;display:flex;flex-direction:column;gap:16px;justify-content:center;margin:0 auto;max-width:1320px;min-height:340px;text-align:center}.tool-page{display:grid;gap:26px;max-width:760px}.dropzone{align-items:center;background:color-mix(in srgb,var(--fg) 4%,transparent);border:1px dashed color-mix(in srgb,var(--fg) 26%,transparent);border-radius:18px;cursor:pointer;display:flex;flex-direction:column;font-weight:800;gap:8px;justify-content:center;min-height:260px;padding:28px;text-align:center;transition:background-color .18s var(--ease-out),border-color .18s var(--ease-out),transform .16s var(--ease-out)}.dropzone:active{transform:scale(.99)}.dropzone-icon{align-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:999px;color:var(--accent);display:inline-flex;height:64px;justify-content:center;margin-bottom:8px;width:64px}.dropzone>span:last-child{color:color-mix(in srgb,var(--fg) 54%,transparent);font-weight:700}.dropzone input{height:1px;opacity:0;position:absolute;width:1px}.upload-queue{background:color-mix(in srgb,var(--fg) 4%,transparent);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:16px;overflow:hidden}.queue-item{display:flex;gap:14px;justify-content:space-between;min-width:0;padding:12px 14px}.queue-item+.queue-item{border-top:1px solid color-mix(in srgb,var(--fg) 10%,transparent)}.queue-item span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;flex-wrap:wrap;gap:10px}.settings-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.color-row{display:grid;gap:8px;grid-template-columns:52px 1fr}.color-row input[type=color]{padding:4px}.viewer{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 150px);padding:22px 0}.viewer img{display:block;border-radius:14px;max-height:calc(100vh - 190px);max-width:100%;object-fit:contain}.photo-meta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;padding:0 0 18px}.error{color:#b42318;font-weight:700;margin:0}.status{color:color-mix(in srgb,var(--fg) 70%,transparent);font-weight:700;margin:0}.spin{animation:spin .9s linear infinite}@media(hover:hover)and (pointer:fine){button:hover,.link-button:hover{box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 18%,transparent);transform:translateY(-1px)}.secondary:hover,.nav-action:hover{background:color-mix(in srgb,var(--fg) 8%,transparent);box-shadow:none}.photo-tile:hover{filter:saturate(1.04);transform:translateY(-2px)}.dropzone:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 42%,transparent)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:720px){h1{font-size:clamp(2.25rem,15vw,4rem);line-height:.98}.form-row,.gallery-hero{align-items:stretch;flex-direction:column}.form-row button,.actions button,.actions .link-button,.gallery-hero button,.empty-state .link-button{justify-content:center;width:100%}.settings-grid{grid-template-columns:1fr}.topbar{gap:16px;align-items:flex-start;flex-wrap:wrap}.topbar nav{gap:12px}.app-shell{padding:16px}.gallery-hero,.tool-page{margin-top:44px}.photo-grid,.photo-grid.compact{--tile-size: 100%;grid-template-columns:1fr}.photo-tile img,.photo-grid.masonry .photo-tile:nth-child(n) img{aspect-ratio:4 / 3;object-fit:contain}.dropzone{min-height:220px}.viewer{min-height:calc(100vh - 132px);padding:14px 0}.viewer img{max-height:calc(100vh - 172px)}}@media(max-width:460px){button,.link-button{min-height:42px;padding:0 14px}.home-shell,.center-shell{padding:16px}.intro{font-size:1rem}.topbar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;width:100%}.topbar nav a,.back-link,.download-link{justify-content:center;min-height:36px}.gallery-hero{margin-bottom:24px}.empty-state{min-height:280px;padding:22px}.queue-item{align-items:flex-start;flex-direction:column;gap:6px}.color-row{grid-template-columns:48px minmax(0,1fr)}.photo-meta{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
