:root{--blue: #0269B7;--blue-dark: #02508F;--yellow: #EBCB43;--ink: #231815;--sub: #5E5A57;--text2: #4A403C;--line: #E5E2DC;--bg: #F5F5F2;--card: #FFFFFF;--green: #3C8C54;--green-dark: #2F7A47;--red: #D7372B;--sky: #BFD9EE;--sand: #F6E8A6;--danger: #A3341A;--danger-bg: #FBE5E0;--fs-xs: 13px;--fs-s: 14px;--fs-m: 16px;--fs-l: 18px;--fs-xl: 22px;--radius: 24px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}@supports (overflow: clip){html,body{overflow-x:clip}}body{margin:0;background:var(--bg);color:var(--ink);font-family:Bricolage Grotesque,Zen Maru Gothic,Hiragino Maru Gothic ProN,system-ui,sans-serif;font-size:var(--fs-m);font-weight:500;line-height:1.7}a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{max-width:1180px;margin:0 auto;padding:0 16px 48px}.center{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center;font-size:var(--fs-m)}.btn{min-height:58px;padding:0 24px;border:none;border-radius:999px;background:var(--blue);color:#fff;font-weight:700;font-size:var(--fs-l);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn:hover{background:var(--blue-dark)}.btn:disabled{opacity:.5;cursor:default}.btn.block{width:100%}.btn.ghost{background:#e9e9e4;color:var(--ink)}.btn.ghost:hover{background:#deded8}.btn.danger{background:var(--danger-bg);color:var(--danger)}.btn.small{min-height:42px;padding:0 18px;font-size:var(--fs-s)}.field{display:flex;flex-direction:column;gap:8px}.field>span.label,.label-row{font-size:var(--fs-m);font-weight:700;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.field .hint,.label-row .hint{font-size:var(--fs-s);font-weight:500;color:var(--sub)}.input,.select{width:100%;height:56px;border:none;border-radius:999px;background:#fff;padding:0 20px;font-size:var(--fs-m);font-weight:700}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:48px}.select-wrap{position:relative;display:flex;align-items:center}.select-wrap svg{position:absolute;right:18px;pointer-events:none;color:var(--sub)}.textarea{width:100%;min-height:120px;border:none;border-radius:22px;background:#fff;padding:14px 18px;font-size:var(--fs-m);line-height:1.7;resize:vertical}.error{margin:0;color:var(--danger);background:var(--danger-bg);border-radius:16px;padding:12px 16px;font-size:var(--fs-s);font-weight:700}.demo-banner{background:var(--yellow);color:var(--ink);font-size:var(--fs-xs);font-weight:700;text-align:center;padding:8px 12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 0}.chip{min-height:32px;padding:0 14px;border-radius:999px;background:#fff;font-size:var(--fs-s);font-weight:700;display:inline-flex;align-items:center}.who{font-size:var(--fs-s);color:var(--sub);font-weight:700}.hero h1{margin:12px 0 0;font-size:40px;line-height:1.15;font-weight:900}.hero p{margin:14px 0 0;font-size:var(--fs-m);line-height:1.85;color:var(--text2)}.hero .who{margin-top:10px}.home{display:grid;gap:32px;grid-template-columns:minmax(0,1fr);padding-top:20px}@media(min-width:960px){.wrap{padding:0 32px 64px}.home{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:40px 48px;align-items:start}.home .col-feed{grid-column:2;grid-row:1 / span 3}.hero h1{font-size:clamp(48px,5vw,68px)}}.card{background:var(--card);border-radius:28px;padding:20px 16px}.section-title{margin:0;font-size:var(--fs-xl);line-height:1.3;font-weight:900;display:flex;align-items:center;gap:8px}.count-pill{min-height:26px;padding:0 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:var(--fs-xs);font-weight:700;display:inline-flex;align-items:center}.progress-card{background:var(--blue);color:#fff;border-radius:28px;padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px}.progress-card .label{font-size:var(--fs-m);font-weight:700}.progress-card .big{display:flex;align-items:baseline;gap:6px}.progress-card .big b{font-size:clamp(68px,14vw,112px);line-height:.95;font-weight:800;letter-spacing:-.04em}.progress-card .big span{font-size:24px;font-weight:700}.bar{height:12px;border-radius:999px;background:#ffffff4d}.bar>i{display:block;height:12px;border-radius:999px;background:var(--yellow)}.progress-card .meta{display:flex;justify-content:space-between;font-size:var(--fs-m);font-weight:700}.stamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:14px 8px;margin-top:16px}@media(min-width:600px){.stamps{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:16px 10px}}.stamp{position:relative;display:block;aspect-ratio:1 / 1;border-radius:999px;text-decoration:none;color:var(--ink)}.stamp img{display:block;width:100%;height:100%;border-radius:999px}.stamp-no{position:absolute;left:50%;bottom:-6px;transform:translate(-50%);min-width:24px;height:17px;padding:0 4px;border-radius:999px;background:#fff;font-size:11px;font-weight:800;line-height:17px;text-align:center;box-shadow:0 0 0 1.5px var(--ink)}.stamp.lit img,.stamp.mine img{box-shadow:none}.stamp.mine .stamp-no{background:var(--red);color:#fff;box-shadow:0 0 0 1.5px var(--red)}.stamp.empty img{opacity:.2;filter:grayscale(1)}.stamp.empty:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;border:2px dashed #A8A6A4}.stamp.empty .stamp-no{box-shadow:0 0 0 1.5px #a8a6a4;color:var(--sub)}.legend{display:flex;gap:8px 16px;flex-wrap:wrap;margin-top:20px;font-size:var(--fs-s);color:var(--text2)}.legend span{display:inline-flex;align-items:center;gap:6px}.lg{width:16px;height:16px;border-radius:999px;display:inline-block;background:#fff}.lg.lit{background:var(--green)}.lg.mine{background:var(--red)}.lg.empty{border:2px dashed #A8A6A4}.feed-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.feed{display:flex;gap:12px;margin:12px -16px 0;padding:4px 16px 12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;overscroll-behavior-x:contain;scrollbar-width:none}.feed::-webkit-scrollbar{display:none}.feed>*{flex:0 0 min(80%,320px);scroll-snap-align:start}@media(min-width:960px){.feed{flex-direction:column;margin:12px 0 0;padding:0;overflow:visible;max-height:none}.feed>*{flex:none}.feed .rec-photo{aspect-ratio:16 / 9}}.feed-more{border:2px dashed #C9C5BC;border-radius:var(--radius);background:transparent;color:var(--ink);font-size:var(--fs-l);font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:120px}.feed-more small{font-size:var(--fs-s);color:var(--sub)}.empty-note{margin:12px 0 0;color:var(--sub);font-size:var(--fs-m);padding:16px;background:#fff;border-radius:var(--radius)}.rec{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);background:#fff;overflow:hidden}.rec-photo{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:4 / 3;border:none;padding:0;background:var(--sand) center / cover no-repeat}.rec-photo.empty{background:#f3eed9}.rec-photo.empty img{width:42%;opacity:.9;transform:rotate(-8deg)}.photo-count{position:absolute;left:10px;top:10px;min-height:28px;padding:0 10px;border-radius:999px;background:#231815cc;color:#fff;font-size:var(--fs-s);font-weight:700;display:inline-flex;align-items:center;gap:4px}.rec-body{position:relative;flex:1;display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;min-width:0}.rec-stamp{position:absolute;right:6px;top:-62px;width:112px;height:112px;border-radius:999px;mix-blend-mode:multiply;opacity:.95;pointer-events:none}.rec .meta{display:flex;gap:8px;align-items:baseline;font-size:var(--fs-s);color:var(--sub);padding-right:104px}.rec .meta b{color:var(--ink);font-size:var(--fs-m)}.rec-venue{font-size:var(--fs-l);font-weight:700;line-height:1.4;padding-right:104px;overflow-wrap:anywhere;color:var(--ink);text-decoration:none}a.rec-venue:hover{text-decoration:underline}.rec .text{margin:4px 0 0;font-size:var(--fs-m);line-height:1.7;color:var(--text2);overflow-wrap:anywhere}.rec .actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.rec-thumbs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.rec-thumb{width:48px;height:48px;border-radius:12px;border:none;padding:0;background:var(--sand) center / cover no-repeat}.search{display:flex;align-items:center;gap:10px;height:56px;padding:0 20px;border-radius:999px;background:#fff;color:var(--sub)}.search input{flex:1;border:none;outline:none;background:transparent;font-size:var(--fs-m);color:var(--ink);min-width:0}.filters{display:flex;flex-wrap:wrap;gap:8px}.pill{min-height:44px;padding:0 18px;border:none;border-radius:999px;background:#fff;font-size:var(--fs-m);font-weight:700}.pill[aria-pressed=true]{background:var(--ink);color:#fff}.venues{border-radius:var(--radius);background:#fff;padding:4px 16px;margin-top:12px}.venue{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.venue:last-child{border-bottom:none}.venue .no{width:48px;height:48px;flex-shrink:0;border-radius:999px;display:grid;place-items:center;font-size:var(--fs-s);font-weight:800}.venue .no img{width:100%;height:100%;border-radius:999px;display:block}.venue .no.lit img,.venue .no.mine img{box-shadow:none}.venue .no.empty{border:2px dashed #A8A6A4;color:var(--sub)}.venue .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.venue .name{font-size:var(--fs-l);font-weight:700;line-height:1.4}.venue .sub{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:var(--fs-s);color:var(--sub)}.venue .sub svg{vertical-align:-2px}.tag{min-height:24px;padding:0 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;color:var(--ink);display:inline-flex;align-items:center}.tag.museum{background:var(--sky)}.tag.gallery{background:var(--sand)}.venue .status{font-size:var(--fs-s);font-weight:700;color:var(--green-dark);white-space:nowrap}.venue .status.none{color:var(--sub);font-weight:500}@media(min-width:960px){.venues.two{columns:2;column-gap:32px}.venues.two .venue{break-inside:avoid}}.form-page{max-width:560px;margin:0 auto;padding:16px 16px 48px;display:flex;flex-direction:column;gap:22px}.back{border:none;cursor:pointer;font-family:inherit;align-self:flex-start;min-height:46px;padding:0 18px 0 12px;border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-m);font-weight:700}.form-page h1{margin:0;font-size:30px;line-height:1.25;font-weight:900}.photos{display:flex;gap:10px;flex-wrap:wrap}.thumb{width:104px;height:104px;border-radius:20px;background:var(--sand) center / cover;position:relative}.thumb button{position:absolute;top:6px;right:6px;width:34px;height:34px;border:none;border-radius:999px;background:var(--ink);color:#fff;display:grid;place-items:center;padding:0}.thumb.loading{background:linear-gradient(110deg,#ece8df 30%,#f7f5f0,#ece8df 70%) 0 0 / 200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.thumb.loading{animation:none}}.back:disabled{opacity:.5;cursor:default}.add-photo{width:104px;height:104px;border-radius:20px;border:2px dashed #A8A6A4;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-s);font-weight:700}.form-actions{display:flex;gap:10px;margin-top:4px}.form-actions .btn:last-child{flex:1}.venue-info{display:flex;flex-direction:column;gap:14px;padding:18px 16px;background:#fff;border-radius:var(--radius);margin-top:8px}.venue-head{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#fff;border-radius:var(--radius);margin-top:-8px}.venue-head img{width:96px;height:96px;flex-shrink:0;border-radius:999px;transform:rotate(-6deg)}.venue-head b{display:block;font-size:var(--fs-l);line-height:1.4}.venue-head span{font-size:var(--fs-s);color:var(--sub)}.venue-links{display:flex;flex-wrap:wrap;gap:8px}.chip-link{min-height:44px;padding:0 16px;border-radius:999px;background:var(--card);border:2px solid var(--blue);color:var(--blue);font-size:var(--fs-s);font-weight:700;text-decoration:none;display:inline-flex;align-items:center}.chip-link:hover{background:var(--blue);color:#fff}.venue-map{display:block;width:100%;height:240px;border:0;border-radius:16px;background:var(--sky)}.venue-address{margin:-6px 0 0;font-size:var(--fs-s);line-height:1.6;color:var(--text2);overflow-wrap:anywhere}.map-note{margin:0;font-size:var(--fs-s);color:var(--sub)}.official-link{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-top:12px;padding:0 16px;border-radius:999px;background:#fff;color:var(--blue);font-size:var(--fs-s);font-weight:700;text-decoration:none}.official-link:hover{background:var(--blue);color:#fff}.me-link{display:inline-flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:4px 6px 4px 4px;border-radius:999px;background:#fff;border:1.5px solid var(--line);color:var(--ink);font-size:var(--fs-s);font-weight:700;text-decoration:none}.me-link:hover{background:#f1f0ec}.me-avatar{width:32px;height:32px;flex-shrink:0;border-radius:999px;background:#dceaf6;color:var(--blue-dark);display:grid;place-items:center;font-size:var(--fs-s);font-weight:800;line-height:1}.me-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-action{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 6px 0 10px;border-left:1.5px solid var(--line);color:var(--sub);font-size:var(--fs-s);font-weight:700}.me-link:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.topbar .chip,.join-top .chip{flex-shrink:0;white-space:nowrap}.seg{display:inline-flex;padding:4px;gap:4px;border-radius:999px;background:#fff;align-self:flex-start}.seg button{min-height:40px;padding:0 16px;border:none;border-radius:999px;background:transparent;font-size:var(--fs-s);font-weight:700;color:var(--sub)}.seg button[aria-pressed=true]{background:var(--ink);color:#fff}.seg.block{display:flex;width:100%;align-self:stretch}.seg.block button{flex:1;min-height:48px;font-size:var(--fs-m)}.join-page{padding-top:20px}.join-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.join-page .app-title{margin:0;font-size:34px;line-height:1.2;font-weight:900}.join-lead{margin:0;line-height:1.85;color:var(--text2);font-size:var(--fs-m)}.settings-card{background:#fff;border-radius:var(--radius);padding:20px 18px;display:flex;flex-direction:column;gap:12px}.settings-card h2{margin:0;font-size:var(--fs-l);font-weight:900}.settings-card .seg{background:var(--bg)}.settings-card.danger-zone{background:#fff7f5;box-shadow:inset 0 0 0 2px #f3cfc6}.settings-card.danger-zone h2{color:var(--danger)}.settings-help{margin:0;font-size:var(--fs-s);line-height:1.7;color:var(--sub)}.inline-form{display:flex;gap:8px;align-items:center}.inline-form .input{flex:1}.inline-form .btn{flex-shrink:0;min-height:56px}.input.boxed{background:var(--bg)}.settings-actions{display:flex;gap:8px;flex-wrap:wrap}.done{margin:0;color:var(--green-dark);background:#e3f1e7;border-radius:16px;padding:12px 16px;font-size:var(--fs-s);font-weight:700}h1 .ln{display:block}h1 .nb{display:inline-block}.venue-photo{margin:0;border-radius:16px;overflow:hidden;background:var(--bg)}.venue-photo img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--sky)}.venue-photo figcaption{padding:8px 12px;font-size:var(--fs-xs);line-height:1.6;color:var(--sub)}.crowd{display:flex;flex-direction:column;gap:10px}.crowd>.label{font-size:var(--fs-m);font-weight:700;display:flex;justify-content:space-between;align-items:baseline}.crowd .hint{font-size:var(--fs-s);font-weight:500;color:var(--sub)}.crowd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}.crowd-item{margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}.crowd-thumb{display:block;width:100%;border:none;padding:0;aspect-ratio:1 / 1;border-radius:14px;background-size:cover;background-position:center;background-color:var(--sky)}.crowd-item figcaption{display:flex;flex-direction:column;font-size:var(--fs-xs);line-height:1.4;color:var(--sub);overflow-wrap:anywhere}.crowd-item figcaption b{color:var(--ink);font-size:var(--fs-s)}.wrap,.form-page,.field,.select-wrap,.venue-info,.crowd,.card,.input,.select,.textarea,.venue-map{min-width:0;max-width:100%}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:flex-start;height:56px;line-height:56px;padding:0 20px;text-align:left;font-variant-numeric:tabular-nums}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;min-height:1.2em}input[type=date]::-webkit-datetime-edit{padding:0;text-align:left}input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=date]::-webkit-calendar-picker-indicator{margin-left:auto;opacity:.6;cursor:pointer}.venue-photo figcaption,.map-note,.venue .name,.rec .meta{overflow-wrap:anywhere}.form-page>.form-page{margin:0;width:100%;max-width:none}.viewer{touch-action:pan-x;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#140e0cf0;display:flex;flex-direction:column;color:#fff}.viewer-top{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 4px 20px}.viewer-count{font-size:var(--fs-m);font-weight:700}.viewer-btn{width:48px;height:48px;border-radius:999px;border:none;background:#ffffff29;color:#fff;display:grid;place-items:center;padding:0}.viewer-track{flex:1;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.viewer-track::-webkit-scrollbar{display:none}.viewer-slide{flex:0 0 100%;scroll-snap-align:center;display:grid;place-items:center;padding:8px 16px;min-width:0}.viewer-slide img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.viewer-caption{margin:0;padding:4px 20px 8px;font-size:var(--fs-m);text-align:center;color:#ffffffe6;overflow-wrap:anywhere}.viewer-dots{display:flex;justify-content:center;gap:8px;padding:6px 0 24px}.viewer-dots i{width:8px;height:8px;border-radius:999px;background:#ffffff59}.viewer-dots i.on{background:var(--yellow)}.viewer-prev,.viewer-next{position:absolute;top:50%;transform:translateY(-50%)}.viewer-prev{left:12px}.viewer-next{right:12px}@media(hover:none){.viewer-prev,.viewer-next{display:none}}.feed-head .see-all{flex-shrink:0;min-height:40px;padding:0 16px;border-radius:999px;border:2px solid var(--ink);background:#fff;color:var(--ink);font-size:var(--fs-s);font-weight:700;text-decoration:none;display:inline-flex;align-items:center}.feed-head .see-all:hover{background:var(--ink);color:#fff}.list-page{max-width:760px;margin:0 auto;padding:16px 16px 48px;display:flex;flex-direction:column;gap:16px;min-width:0}.list-page h1{margin:0;font-size:30px;line-height:1.25;font-weight:900}.list-summary{margin:-8px 0 0;font-size:var(--fs-m);color:var(--sub);font-weight:700}.list-filters{display:flex;flex-wrap:wrap;gap:10px}.list-filters .select-wrap{flex:1 1 240px}.rec-list{display:flex;flex-direction:column;gap:12px}.rec.row{flex-direction:row;align-items:stretch}.rec.row .rec-photo{flex:0 0 108px;width:108px;aspect-ratio:auto;min-height:108px}.rec.row .rec-photo.empty img{display:none}.rec.row .rec-body{display:block;padding:12px 14px 14px}.rec.row .rec-body>.rec-venue,.rec.row .rec-body>.text{display:block}.rec.row .rec-stamp{position:static;float:right;width:84px;height:84px;margin:-4px -6px 2px 6px;shape-outside:circle(50%)}.rec.row .meta,.rec.row .rec-venue{padding-right:0}.rec.row .rec-thumbs,.rec.row .actions{clear:both}.venue-page{max-width:640px;margin:0 auto;padding:16px 16px calc(120px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:20px;min-width:0}.venue-hero{display:flex;align-items:center;gap:16px}.venue-hero{align-items:flex-start;justify-content:space-between}.venue-hero-stamp{width:64px;height:64px;flex-shrink:0;border-radius:999px;margin-top:4px}.venue-hero>div{min-width:0}.venue-no{display:inline-block;min-height:24px;padding:0 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:var(--fs-xs);font-weight:800;line-height:24px}.venue-hero h1{margin:6px 0 0;font-size:28px;line-height:1.25;font-weight:900;overflow-wrap:anywhere}.venue-meta{margin:8px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--fs-s);color:var(--sub)}.venue-meta svg{vertical-align:-2px}.venue-count{margin:6px 0 0;font-size:var(--fs-s);font-weight:700;color:var(--green-dark)}.record-btn{box-shadow:0 4px 14px #02508f47}.venue-block{display:flex;flex-direction:column;gap:12px;padding:18px 16px;background:#fff;border-radius:var(--radius)}.venue-block .venue-address{margin:0}@media(max-width:420px){.venue-hero h1{font-size:24px}}.sheet-backdrop{touch-action:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#23181573;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:600px;max-height:92vh;max-height:92dvh;display:flex;flex-direction:column;background:var(--bg);border-radius:28px 28px 0 0;outline:none;animation:sheet-up .28s cubic-bezier(.2,.8,.2,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-grip{width:44px;height:5px;border-radius:999px;background:#cfcac0;margin:10px auto 0}.sheet-handle{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.sheet-handle:active{cursor:grabbing}.sheet{transition:transform .22s cubic-bezier(.2,.8,.2,1);will-change:transform}.sheet.dragging{transition:none}.sheet-backdrop{transition:opacity .22s}@media(prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{transition:none}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px 8px 20px}.sheet-head h2{margin:0;font-size:var(--fs-l);font-weight:900;line-height:1.4;overflow-wrap:anywhere}.sheet-close{width:44px;height:44px;flex-shrink:0;border:none;border-radius:999px;background:#fff;color:var(--ink);display:grid;place-items:center;padding:0}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:4px 16px calc(24px + env(safe-area-inset-bottom))}.editor{display:flex;flex-direction:column;gap:20px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#23181580;display:grid;place-items:center;padding:16px;touch-action:none;animation:dialog-fade .18s ease-out}.dialog{width:100%;max-width:400px;background:#fff;border-radius:28px;padding:28px 20px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:0 18px 48px #23181547;animation:dialog-pop .2s ease-out}.dialog-icon{width:56px;height:56px;border-radius:999px;display:grid;place-items:center;background:var(--bg);color:var(--ink)}.dialog-icon.danger{background:var(--danger-bg);color:var(--danger)}.dialog-title{margin:4px 0 0;font-size:var(--fs-xl);line-height:1.35;font-weight:900}.dialog-message{margin:0;font-size:var(--fs-m);line-height:1.7;color:var(--text2)}.dialog .error{width:100%;text-align:left}.dialog-actions{display:flex;gap:10px;width:100%;margin-top:8px}.dialog-actions .btn{flex:1;min-height:54px;padding:0 12px;font-size:var(--fs-m)}.btn.danger-solid{background:var(--danger);color:#fff}.btn.danger-solid:hover{background:#8a2b14}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}}@media(prefers-reduced-motion:reduce){.dialog-backdrop,.dialog{animation:none}}.celebrate-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#23181573;touch-action:none;animation:dialog-fade .3s ease-out}.celebrate{position:fixed;left:0;right:0;bottom:0;z-index:121;max-width:560px;margin:0 auto;box-sizing:border-box;background:#fff;border-radius:28px 28px 0 0;padding:0 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;box-shadow:0 -12px 40px #2318152e;animation:celebrate-up .65s cubic-bezier(.2,.8,.2,1)}@media(max-height:640px){.celebrate{max-height:calc(100dvh - 16px);overflow-y:auto}}.celebrate .sheet-grip{margin-top:12px}.polaroid{position:relative;margin:6px 0 0;width:min(250px,66vw);box-sizing:border-box;padding:10px 10px 12px;background:#fff;border-radius:6px;text-align:left;transform:rotate(-3deg);box-shadow:0 10px 28px #23181538,0 0 0 1px #2318150f;animation:polaroid-in .8s .2s cubic-bezier(.2,.8,.2,1) both}.polaroid-photo{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:3px;background:var(--sky)}.polaroid figcaption{display:flex;flex-direction:column;padding:8px 2px 0}.polaroid figcaption b{font-size:var(--fs-s);line-height:1.5;overflow-wrap:anywhere}.polaroid figcaption span{font-size:var(--fs-xs);line-height:1.6;color:var(--text2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.celebrate-stamp{position:absolute;right:-44px;top:46px;width:140px;height:140px;transform:rotate(-12deg);animation:stamp-press .75s 1s cubic-bezier(.3,.7,.3,1) both}.celebrate-stamp.solo{position:static;width:168px;height:168px;margin-top:10px}@media(max-width:359px){.celebrate-stamp{right:-28px;top:34px;width:112px;height:112px}.celebrate-stamp.solo{width:148px;height:148px}}.celebrate-where{margin:-4px 0 0;font-size:var(--fs-s);font-weight:700;color:var(--text2)}.celebrate-head h2{margin:0;font-size:26px;line-height:1.3;font-weight:900}.celebrate-head p{margin:2px 0 0;font-size:var(--fs-s);line-height:1.6;color:var(--green-dark);font-weight:700}.celebrate-progress{animation:dialog-fade .5s ease-out;width:100%;box-sizing:border-box;padding:14px 16px;border-radius:20px;background:var(--bg);display:flex;flex-direction:column;gap:8px;text-align:left}.celebrate-progress .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-s);font-weight:700}.celebrate-progress .row>span:last-child{color:var(--sub);white-space:nowrap}.celebrate-count{display:inline-block;font-size:22px;font-weight:800;color:var(--ink)}.celebrate-count.pop{animation:count-pop .8s cubic-bezier(.3,.7,.3,1)}.celebrate-progress .left{font-size:var(--fs-xs);color:var(--sub)}.celebrate-bar{height:10px;border-radius:999px;background:var(--line);overflow:hidden}.celebrate-bar>i{display:block;height:100%;border-radius:999px;background:var(--blue);transition:width 1.1s cubic-bezier(.3,.7,.3,1)}.celebrate-conf{position:absolute;left:50%;top:150px;width:10px;height:14px;border-radius:3px;pointer-events:none;opacity:0;animation:confetti 2.4s 1.5s ease-out both}@keyframes celebrate-up{0%{transform:translateY(100%)}}@keyframes polaroid-in{0%{opacity:0;transform:translateY(40px) rotate(4deg)}to{opacity:1;transform:rotate(-3deg)}}@keyframes stamp-press{0%{opacity:0;transform:translateY(-40px) scale(2.1) rotate(-34deg)}70%{opacity:1;transform:translateY(0) scale(.9) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(-12deg)}}@keyframes confetti{0%{opacity:0;transform:translate(-50%) scale(.2) rotate(0)}10%,70%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--x)),var(--y)) scale(1) rotate(var(--r))}}@keyframes count-pop{0%{transform:scale(1.4);color:var(--blue)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.celebrate{animation:dialog-fade .5s ease-out}.polaroid{animation:soft-in .7s .2s ease-out both}.celebrate-stamp{animation:soft-in .7s .8s ease-out both}.celebrate-count.pop{animation:none;color:var(--blue)}.celebrate-conf{display:none}.celebrate-bar>i{transition:width .7s ease-out}}@keyframes soft-in{0%{opacity:0}}.font-wait{visibility:hidden}.font-cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:95;margin:0;padding:14px 20px;border-radius:999px;background:var(--ink);color:#fff;font-size:var(--fs-m);font-weight:700;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis}.venue-cover{margin:0 -16px}.venue-cover img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--sky)}.venue-cover figcaption{padding:8px 16px 0;font-size:var(--fs-xs);line-height:1.6;color:var(--sub);overflow-wrap:anywhere}@media(min-width:640px){.venue-cover{margin:0}.venue-cover img{border-radius:var(--radius)}.venue-cover figcaption{padding:8px 4px 0}}.venue-hero{margin-top:-4px}.record-float{position:fixed;left:0;right:0;bottom:0;z-index:80;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 55%,rgba(245,245,242,0));pointer-events:none}.record-float .record-btn{display:flex;max-width:600px;margin:0 auto;pointer-events:auto}.toast.above-float{bottom:calc(108px + env(safe-area-inset-bottom))}.post-list{display:flex;flex-direction:column}.rec.post{background:transparent;border-radius:0;border-top:1px solid var(--line)}.rec.post:first-child{border-top:none}.rec.post .rec-body{padding:14px 0}.rec.post .meta,.rec.post .rec-venue{padding-right:0}.rec-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.rec-photos-item{aspect-ratio:1 / 1;border:none;padding:0;border-radius:14px;background:var(--sand) center / cover no-repeat}
