:root{color-scheme:light;--paper:#f7f4ee;--ink:#1f1c18;--muted:#6f685e;--line:#e3ddd2;--accent:#24382e;--success:#2c6a4a;--warn:#9a4a24;--serif:"New York",ui-serif,Georgia,"Hiragino Mincho ProN",serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Segoe UI","Yu Gothic UI","Noto Sans JP",sans-serif;--gutter:20px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-tap-highlight-color:transparent}body,h1,p{margin:0}button{font:inherit;color:inherit}.page{max-width:520px;min-height:100dvh;margin:0 auto;padding:20px var(--gutter) calc(32px + var(--safe-bottom))}.brand{font-family:var(--serif);font-size:17px;letter-spacing:.02em}.note{color:var(--muted);font-size:14px}.warn{color:var(--warn)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:12px 20px;border:1px solid transparent;border-radius:14px;font-size:17px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.button:active{opacity:.75}.button:disabled{opacity:.45;cursor:default}.button.primary{background:var(--accent);color:#fff}.button.secondary{background:transparent;border-color:var(--accent);color:var(--accent)}.button.small{width:auto;min-height:44px;font-size:15px}.text-button{min-height:44px;padding:0 4px;border:0;background:none;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:10;gap:8px;max-width:520px;margin:0 auto;padding:12px var(--gutter) calc(12px + var(--safe-bottom));background:var(--paper);border-top:1px solid var(--line)}.action-bar,.home{display:flex;flex-direction:column}.home{justify-content:space-between;min-height:100dvh}.home-copy{padding-top:18vh}.home-title{margin-top:16px;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.4}.field,.home .note{margin-bottom:12px}.field,.field-label{display:block}.field-label{margin-bottom:6px;color:var(--muted);font-size:14px}.field-input{width:100%;min-height:52px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit}.photographer{display:flex;flex-direction:column;gap:20px;padding-bottom:calc(112px + var(--safe-bottom))}.section-title{margin:16px 0 8px;font-size:22px;font-weight:600}.banner{padding:14px 16px;border-radius:12px;font-weight:600}.banner.success{background:var(--success);color:#fff}.connected-row{justify-content:space-between;gap:12px}.connected,.connected-row{display:flex;align-items:center}.connected{gap:10px;font-size:18px;font-weight:600}.dot{width:10px;height:10px;border-radius:50%;background:var(--success)}.qr-block{display:flex;flex-direction:column;align-items:center;gap:12px}.qr-lead{font-size:18px;font-weight:600;text-align:center}.qr-frame{width:min(100%,320px);aspect-ratio:1;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.qr-frame img{display:block;width:100%;height:100%}.url{width:100%;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.timer,.url{text-align:center}.timer{padding:8px 0}.timer-value{font-size:72px;font-weight:300;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer-unit{margin-left:4px;font-size:22px;font-weight:400;letter-spacing:0}.timer-caption{margin-top:4px;color:var(--muted);font-size:14px}.progress{display:flex;flex-direction:column;gap:16px}.progress-text{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.progress-count{font-size:22px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.track{height:4px;overflow:hidden;border-radius:2px;background:var(--line)}.fill{height:100%;background:var(--accent);transition:width .25s ease}.failed{justify-content:space-between;gap:12px}.customer.centered,.failed{display:flex;align-items:center}.customer.centered{flex-direction:column;justify-content:center;gap:14px;text-align:center}.customer.centered .brand{position:absolute;top:20px}.display{max-width:13em;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.25}.lead{max-width:22em;color:var(--muted)}.waiting-mark{width:44px;height:1px;margin-bottom:14px;background:var(--ink);animation:breathe 1.8s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.2;transform:scaleX(.5)}50%{opacity:1;transform:scaleX(1)}}.gallery{padding:20px 0 calc(170px + var(--safe-bottom))}.gallery-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 var(--gutter) 16px}.gallery-title{color:var(--muted);font-size:15px;font-weight:400}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:0;padding:0;list-style:none}.tile{position:relative;aspect-ratio:1;background:var(--line)}.tile-button{padding:0;border:0;background:none;cursor:pointer}.tile img,.tile-button{display:block;width:100%;height:100%}.tile img{object-fit:cover;animation:arrive .4s ease}@keyframes arrive{0%{opacity:0}}.tile-loading{width:100%;height:100%}.tile-save{position:absolute;right:4px;bottom:4px;padding:6px 10px;border-radius:8px;background:rgba(31,28,24,.72);color:#fff;font-size:12px;text-decoration:none}.hint{padding:14px var(--gutter) 0}.lightbox{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;background:#000}.lightbox img{flex:1 1;min-height:0;width:100%;object-fit:contain;-webkit-touch-callout:default}.lightbox-bar{display:flex;justify-content:space-between;padding:8px 8px calc(8px + var(--safe-bottom))}.lightbox-button{min-width:88px;min-height:48px;border:0;background:none;color:#fff;font-size:16px;cursor:pointer}.lightbox-button:disabled{opacity:.3}@media (prefers-reduced-motion:reduce){.tile img,.waiting-mark{animation:none}.fill{transition:none}}