:root{--bg:#fff;--ink:#1d1d1b;--muted:#8a8a85;--card:#f4f3ef;--line:#e4e3de;--accent:#e54c2a;--gap:12px;--page:1432px;--font:"Instrument Sans", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:600 14px/1.45 var(--font);font-feature-settings:"tnum";-webkit-text-size-adjust:100%;margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}.top{max-width:var(--page);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:16px;display:flex}.logo{flex-shrink:0;display:block}.logo img{width:auto;height:64px;display:block}@media (width<=480px){.logo img{height:48px}}.nav{gap:8px;display:flex}.nav a,.nav button,.stack button[type=submit]{border:1px solid var(--line);background:var(--bg);padding:6px 10px;font-size:12px;text-decoration:none}.nav a:hover,.nav button:hover{border-color:var(--ink)}.grid{gap:20px var(--gap);max-width:var(--page);grid-template-columns:repeat(2,1fr);margin:0 auto;padding:0 16px 48px;display:grid}@media (width>=768px){.grid{grid-template-columns:repeat(4,1fr);gap:32px 16px}}.tile{flex-direction:column;gap:6px;margin:0;display:flex}.frame{position:relative}.frame img{aspect-ratio:1;object-fit:cover;background:var(--card);width:100%;display:block}.remove{width:28px;height:28px;color:var(--accent);background:#ffffffe6;border:0;border-radius:50%;padding:0;font-size:18px;line-height:1;position:absolute;top:6px;right:6px}.tile-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.date{color:var(--muted)}.stars{letter-spacing:.08em;color:var(--accent);font-size:14px}.stars .off{color:var(--line)}.empty{color:var(--muted);grid-column:1/-1}.about-page{place-items:center;min-height:calc(100dvh - 96px);padding:16px;display:grid}.about-page p{margin:0}.nav .x{color:var(--ink);border:0;padding:0 4px;font-size:28px;font-weight:400;line-height:1}.form-page{max-width:var(--page);margin:0 auto;padding:0 16px 48px}.stack{flex-direction:column;gap:14px;max-width:408px;display:flex}.stack>label,.rating legend{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.stack input:not([type=radio]):not([type=file]),.stack select,.stack textarea{border:1px solid var(--line);background:var(--bg);text-transform:none;letter-spacing:0;border-radius:0;width:100%;padding:10px;font-size:16px}.stack ::placeholder{color:#c4c3bd}.stack input:focus,.stack select:focus,.stack textarea:focus{border-color:var(--ink);outline:none}.stack button[type=submit]{background:var(--ink);color:var(--bg);border-color:var(--ink);padding:14px;font-size:13px}.stack button[type=submit]:disabled{opacity:.5;cursor:wait}.photo-field{flex-direction:column;gap:8px;display:flex}.photo-picker{aspect-ratio:1;background:var(--card);cursor:pointer;color:var(--muted);place-items:center;font-size:13px;display:grid;position:relative}.photo-picker input{opacity:0;height:1px;position:absolute;inset:auto 0 0}.cropper{aspect-ratio:1;background:var(--card);position:relative;overflow:hidden}.cropper canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.cropper canvas:active{cursor:grabbing}.cropper canvas:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.guide{pointer-events:none;border:1.5px dashed #ffffffe6;position:absolute;inset:8%;box-shadow:0 0 0 1px #00000026}.crop-tools{align-items:center;gap:12px;display:flex}.crop-tools .hint{flex:1}.crop-tools button{border:1px solid var(--line);background:var(--bg);flex-shrink:0;padding:6px 10px;font-size:12px}.hint{color:var(--muted);margin:0;font-size:12px}.rating{border:0;gap:6px;margin:0;padding:0;display:flex}.rating legend{margin-bottom:4px}.rating label{flex:1;position:relative}.rating input{opacity:0;position:absolute;inset:0}.rating span{border:1px solid var(--line);text-align:center;padding:10px 0;font-size:16px;display:block}.rating input:checked+span{background:var(--ink);color:var(--bg);border-color:var(--ink)}.rating input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.error{color:var(--accent);min-height:1em;margin:0}
