:root{--pink:#F45A92;--coral:#FF7A6B;--orange:#FF9852;--gold:#F7BF5E;--grad:linear-gradient(135deg,#F45A92 0%,#FF7A6B 38%,#FF9852 70%,#F7BF5E 100%);--grad-deep:linear-gradient(135deg,#B0245C 0%,#B23C3A 38%,#9C5A18 70%,#7E5210 100%);--bg:#FFF8F4;--surface:#FFFFFF;--raised:#FBEFE8;--line:#EBD9CE;--text:#2A1C14;--muted:#8A6F60;--on-accent:#1A0E08;--warn-text:#8A5A12;--warn-bg:rgba(247,191,94,.16);--warn-line:rgba(216,154,46,.55);--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--shadow-card:0 2px 10px rgba(122,74,48,.1);--glow:0 6px 22px rgba(244,90,146,.28);--font-heading:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",sans-serif;--font-ui:"Noto Sans JP","Hiragino Sans",sans-serif;--font-num:"Inter","Noto Sans JP",system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:var(--text)}#app{min-height:100dvh}.num{font-family:var(--font-num);font-feature-settings:"tnum" 1,"lnum" 1}.screen{max-width:460px;margin:0 auto;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.hero{text-align:center;margin-top:8vh;margin-bottom:28px}.brand{font-family:var(--font-heading);font-weight:900;font-size:56px;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{font-family:var(--font-heading);font-weight:700;font-size:19px;margin-top:18px}.subtext{color:var(--muted);font-size:13px;margin-top:8px}.logo-img{display:block;width:210px;max-width:64%;height:auto;margin:0 auto}.logo-sm{display:block;width:132px;height:auto;margin:6vh auto 6px}.ph-logo{width:160px;margin-bottom:4px}.auth-chip{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:24px;margin-bottom:-8px}.auth-email{font-size:12px;color:var(--muted);max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-link{border:none;background:none;color:var(--pink);font-weight:700;font-size:13px;cursor:pointer}.auth-head{text-align:center;margin:6vh 0 22px}.auth-head .logo-img{width:150px;cursor:pointer}.auth-title{font-family:var(--font-heading);font-weight:700;font-size:20px;margin-top:16px}.auth-sub{color:var(--muted);font-size:12.5px;margin-top:8px;line-height:1.55}.auth-note{font-size:11.5px;color:var(--muted);line-height:1.55;margin:2px 2px 6px}.auth-foot{text-align:center;margin-top:16px;font-size:13px;color:var(--muted)}.auth-switch{border:none;background:none;color:var(--pink);font-weight:700;font-size:13px;cursor:pointer}.social{margin-bottom:16px}.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:var(--r-pill);padding:13px;font-family:var(--font-heading);font-weight:700;font-size:15px;cursor:pointer;margin-bottom:10px;border:1px solid transparent}.social-ic{display:inline-flex;flex:0 0 auto;width:18px;height:18px}.social-ic svg{width:18px;height:18px;display:block}.social-google{background:#fff;color:#3c4043;border-color:#dadce0;box-shadow:0 1px 2px #3c40431f}.social-line{color:#fff;border-color:transparent;background:#06c755}.social-or{text-align:center;color:var(--muted);font-size:12px;margin:14px 0 2px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}.input{width:100%;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:14px;font-family:var(--font-ui);font-size:16px;color:var(--text)}.input:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px #f45a9226}.optional{border:none;background:none;margin:2px 0 14px}.optional summary{color:var(--muted);font-size:12.5px;cursor:pointer;list-style:none}.optional summary::-webkit-details-marker{display:none}.optional .note{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.55}.recent{margin-top:26px}.recent-head{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.03em;margin:0 2px 8px}.recent-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow-card)}.recent-name{flex:1;min-width:0;font-family:var(--font-heading);font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-date{flex:0 0 auto;font-size:11px;color:var(--muted);font-family:var(--font-num)}.btn{display:block;width:100%;border:none;border-radius:var(--r-pill);padding:16px;font-family:var(--font-heading);font-weight:700;font-size:16px;cursor:pointer;background:var(--grad);color:var(--on-accent);box-shadow:var(--glow)}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{display:block;width:100%;border:1px solid var(--line);border-radius:var(--r-pill);padding:14px;background:var(--surface);color:var(--text);font-family:var(--font-heading);font-weight:700;font-size:14px;cursor:pointer;margin-top:10px}.btn-ghost{border:none;background:none;color:var(--pink);font-weight:700;font-size:13px;cursor:pointer;padding:6px 4px}.spacer{flex:1}.created-cta{margin-top:16px}.errline{color:#b0453b;font-size:13px;margin:8px 2px 0;text-align:center}.save-nudge{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-top:16px;text-align:center}.save-title{font-family:var(--font-heading);font-weight:700;font-size:15px}.save-sub{font-size:12px;color:var(--muted);margin:6px 0 12px;line-height:1.55}.mine-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.mine-row .recent-item{margin-bottom:0}.mine-manage{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:11px 16px;font-family:var(--font-heading);font-weight:700;font-size:13px;color:var(--text);cursor:pointer}.done-mark{width:56px;height:56px;border-radius:50%;background:var(--grad);margin:6vh auto 14px;display:flex;align-items:center;justify-content:center}.done-mark span{font-family:var(--font-heading);font-weight:900;font-size:26px;color:var(--on-accent)}.done-title{text-align:center;font-family:var(--font-heading);font-weight:700;font-size:20px}.done-sub{text-align:center;color:var(--muted);font-size:13px;margin-top:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-top:16px;box-shadow:var(--shadow-card)}.card h3{font-family:var(--font-heading);font-size:13px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}.linkrow{display:flex;align-items:center;gap:8px;background:var(--raised);border-radius:var(--r-md);padding:10px 12px}.linkrow .url{flex:1;min-width:0;font-family:var(--font-num);font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qrwrap{display:flex;flex-direction:column;align-items:center;margin-top:14px}.qrframe{padding:14px;border-radius:20px;background:#fff;line-height:0;box-shadow:var(--shadow-card);border:4px solid transparent;background-image:linear-gradient(#fff,#fff),var(--grad-deep);background-origin:border-box;background-clip:padding-box,border-box}.qrframe canvas{border-radius:10px;display:block}.usehint{font-size:11.5px;color:var(--muted);text-align:center;margin-top:10px;line-height:1.55}.card.warn{background:var(--warn-bg);border-color:var(--warn-line)}.card.warn h3{color:var(--warn-text)}.card.warn .warntext{font-size:12px;color:var(--warn-text);line-height:1.6;margin-bottom:10px}.screen.album{padding:0;max-width:520px}.loading{margin:auto;color:var(--muted);font-size:14px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) 16px 12px;background:#fff8f4eb;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-logo{width:30px;height:30px;object-fit:contain;cursor:pointer}.topbar-title{font-family:var(--font-heading);font-weight:700;font-size:16px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-manage{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:7px 14px;font-family:var(--font-heading);font-weight:700;font-size:13px;color:var(--text);cursor:pointer}.topbar-share{flex:0 0 auto;border:none;border-radius:var(--r-pill);padding:8px 18px;font-family:var(--font-heading);font-weight:700;font-size:13px;cursor:pointer;background:var(--grad);color:var(--on-accent);box-shadow:var(--shadow-card)}.album-scroll{padding:14px 14px calc(96px + env(safe-area-inset-bottom))}.album-meta{color:var(--muted);font-size:12px;margin:2px 4px}.album-sub{color:var(--muted);font-size:12px;margin:0 4px 10px}.album-hint{color:var(--muted);font-size:11.5px;margin:0 4px 12px;line-height:1.5}.countdown{background:var(--warn-bg);border:1px solid var(--warn-line);border-left:4px solid var(--gold);border-radius:var(--r-md);padding:11px 14px;margin:2px 0 12px}.countdown-main{font-family:var(--font-heading);font-weight:700;font-size:14px;color:var(--warn-text)}.countdown-sub{font-size:11.5px;color:var(--warn-text);margin-top:4px;line-height:1.5;opacity:.9}.countdown.strong{background:var(--warn-bg-strong,rgba(247,191,94,.3));border-left-color:var(--pink)}.countdown.strong .countdown-main{color:#b0453b;font-size:15px}.countdown.strong .countdown-sub{color:#b0453b}.sheet-overlay{position:fixed;inset:0;z-index:25;background:#1a0e086b;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:460px;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:12px 18px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #2a1c1438}.sheet-grab{width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 12px}.sheet-head{text-align:center;margin-bottom:8px}.sheet-title{font-family:var(--font-heading);font-weight:700;font-size:16px}.sheet-sub{font-size:12px;color:var(--muted);margin-top:4px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;background:var(--text);color:#fff;font-size:12.5px;font-weight:500;padding:11px 18px;border-radius:var(--r-pill);box-shadow:var(--shadow-2);max-width:88%;text-align:center;line-height:1.5}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tile{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;background:var(--raised)}.tile-img{width:100%;height:100%;object-fit:cover;display:block}.tile-mine{position:absolute;left:5px;bottom:5px;font-size:9px;font-weight:700;color:var(--on-accent);background:var(--grad);padding:1px 6px;border-radius:var(--r-pill)}.empty{grid-column:1/-1;text-align:center;padding:12vh 20px}.empty-title{font-family:var(--font-heading);font-weight:700;font-size:16px}.empty-sub{color:var(--muted);font-size:13px;margin-top:6px}.fab{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom));z-index:6;border:none;border-radius:var(--r-pill);padding:15px 28px;font-family:var(--font-heading);font-weight:700;font-size:15px;cursor:pointer;background:var(--grad);color:var(--on-accent);box-shadow:var(--glow)}.upload-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#1a0e086b}.upload-box{background:var(--surface);border-radius:var(--r-lg);padding:18px 24px;font-weight:700;font-size:14px;box-shadow:var(--shadow-card)}.retry-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:15;display:flex;align-items:center;gap:12px;background:var(--text);color:#fff;font-size:12px;padding:10px 14px;border-radius:var(--r-pill);box-shadow:var(--shadow-2);max-width:92%}.retry-btn{border:1px solid rgba(255,255,255,.5);background:#ffffff1f;color:#fff;border-radius:var(--r-pill);padding:6px 16px;font-weight:700;font-size:12px;cursor:pointer;flex:0 0 auto}.name-line{display:flex;align-items:center;gap:8px;margin:0 4px 12px;font-size:11.5px;color:var(--muted)}.name-cur{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-edit{border:none;background:none;color:var(--pink);font-weight:700;font-size:11.5px;cursor:pointer;flex:0 0 auto}.danger-zone{margin:36px 4px 8px;padding-top:20px;border-top:1px solid var(--line)}.danger-zone-note{font-size:11.5px;color:var(--muted);margin-bottom:10px;line-height:1.6}.danger-link{border:none;background:none;color:#c0392b;font-size:13px;font-weight:600;cursor:pointer;padding:6px 0;text-decoration:underline;text-underline-offset:3px}.viewer-btn.frame{color:#f7bf5e;border-color:#f7bf5e99}.viewer-pause{position:absolute;top:14px;left:14px;z-index:6;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:#0006;color:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.highlight-btn{color:#f45a92;border-color:#f45a9273;font-weight:700}.host-cta{display:flex;align-items:center;gap:14px;cursor:pointer;background:linear-gradient(135deg,#241309,#3a1e10);color:#f7eee4;border:1px solid rgba(247,191,94,.4);border-radius:20px;padding:18px 20px;margin:8px 4px 20px;box-shadow:0 10px 30px #24130940}.host-cta-seal{width:44px;height:44px;flex:0 0 auto;border-radius:50%;background:linear-gradient(135deg,#f45a92,#ff7a6b,#f7bf5e);color:#fff;font-weight:900;font-size:22px;display:flex;align-items:center;justify-content:center;font-family:Zen Kaku Gothic New,sans-serif}.host-cta-kicker{font-size:11px;letter-spacing:.16em;color:#f7bf5e}.host-cta-title{font-size:19px;font-weight:800;font-family:Zen Kaku Gothic New,sans-serif;margin:2px 0}.host-cta-sub{font-size:12px;color:#f7eee4bf;line-height:1.6}.host-cta-link{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:700;color:#f7bf5e}.screen.host{background:radial-gradient(120% 80% at 50% 0%,#2a160b,#180c06 60%,#120904);color:#f5ede3;min-height:100vh;min-height:100dvh;max-width:520px;margin:0 auto;padding:0 20px 48px}.host-header{display:flex;align-items:center;gap:12px;padding:18px 0}.host-back{width:34px;height:34px;cursor:pointer;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.host-eyebrow{font-size:11px;letter-spacing:.28em;color:#c79a4b;font-weight:700}.host-hero{text-align:center;padding:20px 0 30px}.host-hero-seal{width:60px;height:60px;margin:0 auto 18px;border-radius:50%;font-size:30px;background:linear-gradient(135deg,#f45a92,#ff7a6b,#f7bf5e);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-family:Zen Kaku Gothic New,sans-serif;box-shadow:0 8px 30px #f7bf5e59}.host-hero-title{font-family:Zen Kaku Gothic New,sans-serif;font-weight:900;font-size:30px;line-height:1.35;white-space:pre-line;margin:0 0 14px;background:linear-gradient(180deg,#fdf6ec,#f7bf5e);-webkit-background-clip:text;background-clip:text;color:transparent}.host-hero-sub{font-size:13.5px;line-height:1.9;color:#f5ede3cc;max-width:22em;margin:0 auto}.host-unlocks{border:1px solid rgba(199,154,75,.35);border-radius:18px;padding:18px 18px 8px;margin:8px 0 30px;background:#ffffff08}.host-unlocks-label{font-size:11px;letter-spacing:.14em;color:#c79a4b;font-weight:700;margin-bottom:12px}.host-unlocks-list{list-style:none;padding:0;margin:0}.host-unlocks-list li{position:relative;padding:0 0 12px 26px;font-size:13.5px;line-height:1.6;color:#f0e6d8}.host-unlocks-list li:before{content:"";position:absolute;left:4px;top:7px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#f7bf5e,#ff9852)}.host-tiers{display:flex;flex-direction:column;gap:16px}.host-tier{position:relative;border:1px solid rgba(199,154,75,.3);border-radius:20px;padding:22px 20px;background:linear-gradient(180deg,#ffffff0d,#ffffff05)}.host-tier.featured{border-color:#f7bf5ecc;box-shadow:0 12px 40px #f7bf5e2e;background:linear-gradient(180deg,#f7bf5e1a,#ffffff05)}.host-tier-badge{position:absolute;top:-11px;left:20px;background:linear-gradient(135deg,#f7bf5e,#ff9852);color:#241309;font-size:11px;font-weight:800;padding:4px 12px;border-radius:999px}.host-tier-name{font-family:Zen Kaku Gothic New,sans-serif;font-size:20px;font-weight:800;color:#fdf6ec}.host-tier-price{font-family:Inter,sans-serif;font-size:32px;font-weight:700;color:#f7bf5e;margin:2px 0 4px;font-variant-numeric:tabular-nums}.host-tier-scope{font-size:12px;color:#f5ede3b3;margin-bottom:14px}.host-tier-feats{list-style:none;padding:0;margin:0 0 18px}.host-tier-feats li{position:relative;padding:0 0 9px 20px;font-size:13px;color:#ede2d3;line-height:1.55}.host-tier-feats li:before{content:"";position:absolute;left:2px;top:7px;width:6px;height:6px;border-radius:50%;background:#f7bf5e}.host-buy{width:100%;border:none;border-radius:999px;padding:14px;font-size:14.5px;font-weight:800;cursor:pointer;color:#241309;background:linear-gradient(135deg,#f7bf5e,#ff9852);box-shadow:0 8px 22px #f7bf5e4d}.host-tier.featured .host-buy{box-shadow:0 10px 28px #f7bf5e73}.host-foot{text-align:center;margin-top:30px}.host-foot-note{font-size:11.5px;color:#f5ede399;line-height:1.7;margin-bottom:16px}.host-foot-back{border:1px solid rgba(199,154,75,.4);background:transparent;color:#e8dac6;border-radius:999px;padding:11px 22px;font-size:13px;cursor:pointer}.screen.projection{padding:0;max-width:none;width:100vw;height:100vh;height:100dvh;background:#0b0705;overflow:hidden;position:fixed;inset:0}.proj-stage{position:absolute;inset:0}.proj-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity 1s ease-in-out;background:#0b0705}.proj-waiting{position:absolute;inset:0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;text-align:center;color:#fff}.proj-waiting-main{font-size:26px;font-weight:800;letter-spacing:.04em}.proj-waiting-sub{font-size:14px;color:#ffffffb3}.proj-overlay{position:absolute;inset:0;pointer-events:none}.proj-corner{position:absolute;left:24px;bottom:24px;display:flex;align-items:center;gap:14px;background:#0b070580;backdrop-filter:blur(6px);padding:12px 16px;border-radius:16px;border:1px solid rgba(247,191,94,.35)}.proj-qr{width:132px;height:132px;background:#fff;border-radius:10px;padding:6px;display:flex;align-items:center;justify-content:center}.proj-qr canvas{width:120px;height:120px;display:block}.proj-corner-text{color:#fff}.proj-title{font-size:18px;font-weight:800;margin-bottom:4px}.proj-join{font-size:12px;color:var(--gold,#F7BF5E);font-weight:600}.proj-exit{position:absolute;top:16px;right:16px;z-index:5;border:1px solid rgba(255,255,255,.4);background:#0b070580;color:#fff;font-size:12px;padding:8px 14px;border-radius:var(--r-pill);cursor:pointer}.skeleton{position:relative;overflow:hidden;background:var(--raised);border-radius:var(--r-md)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:skeleton-shimmer 1.3s ease-in-out infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.skeleton-grid .tile.skeleton{aspect-ratio:1/1}.skeleton-rows{display:flex;flex-direction:column;gap:12px;padding:4px}.skeleton-row{height:60px;border-radius:var(--r-lg)}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}.badge-manage{font-size:10px;font-weight:700;color:var(--on-accent);background:var(--grad);padding:2px 9px;border-radius:var(--r-pill);flex:0 0 auto}.review{margin-top:22px;padding:14px;border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:var(--r-lg)}.review-head{font-family:var(--font-heading);font-weight:700;font-size:14px;color:var(--warn-text)}.review-note{font-size:11.5px;color:var(--warn-text);line-height:1.55;margin:6px 0 12px}.review-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.review-thumb{width:48px;height:48px;object-fit:cover;border-radius:var(--r-sm);flex:0 0 auto}.review-btn{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--r-pill);padding:9px 16px;font-family:var(--font-heading);font-weight:700;font-size:13px;cursor:pointer}.review-btn.danger{border-color:#e7c9c4;color:#b0453b}.danger-zone{margin-top:26px;padding-top:16px;border-top:1px solid var(--line)}.btn-danger{display:block;width:100%;border:1px solid #E7C9C4;background:var(--surface);color:#b0453b;border-radius:var(--r-pill);padding:14px;font-family:var(--font-heading);font-weight:700;font-size:14px;cursor:pointer}.danger-note{font-size:11px;color:var(--muted);text-align:center;margin-top:8px;line-height:1.5}.tile{cursor:pointer}.viewer{position:fixed;inset:0;z-index:30;background:#100a08f0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom))}.viewer-stage{flex:1;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pinch-zoom}.viewer-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.viewer-cap{color:#ffffffd9;font-family:var(--font-num);font-size:12px;margin:10px 0}.viewer-bar{display:flex;gap:10px}.viewer-btn{border:1px solid rgba(255,255,255,.4);background:#ffffff14;color:#fff;border-radius:var(--r-pill);padding:11px 26px;font-family:var(--font-heading);font-weight:700;font-size:14px;cursor:pointer}.viewer-btn.danger{border-color:#d8574eb3;color:#ffd9d4}.viewer-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:14px;width:40px;height:40px;border:none;background:#ffffff1f;color:#fff;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}.footer{margin-top:28px;text-align:center;display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}.footer-link{border:none;background:none;color:var(--muted);font-size:11.5px;cursor:pointer;text-decoration:underline;padding:2px}.footer-sep{color:var(--line);font-size:11px}.screen.legal{max-width:640px}.legal-head{text-align:center;margin:2vh 0 18px}.legal-head .topbar-logo{width:34px;height:34px;margin:0 auto 10px;display:block}.legal-title{font-family:var(--font-heading);font-weight:700;font-size:20px}.legal-updated{font-size:11px;color:var(--muted);margin-top:6px}.legal-intro{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:18px}.legal-sec{margin-bottom:18px}.legal-h{font-family:var(--font-heading);font-weight:700;font-size:14px;margin-bottom:8px}.legal-p{font-size:12.5px;color:var(--text);line-height:1.7;margin-bottom:6px}.legal-draft{font-size:11px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-md);padding:10px 12px;margin:16px 0;line-height:1.6}.price-group{margin-bottom:22px}.price-glabel{font-family:var(--font-heading);font-weight:700;font-size:13px;color:var(--muted);letter-spacing:.03em;margin:0 2px 10px}.price-gnote{font-size:11.5px;color:var(--muted);line-height:1.6;margin:0 2px 10px}.price-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow-card)}.price-card.featured{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--grad) border-box}.price-top{display:flex;align-items:center;gap:8px}.price-name{font-family:var(--font-heading);font-weight:700;font-size:15px}.price-pop{font-size:10px;font-weight:700;color:var(--on-accent);background:var(--grad);padding:2px 8px;border-radius:var(--r-pill)}.price-amount{font-family:var(--font-num);font-weight:700;font-size:20px;margin-top:2px}.price-unit{font-size:12px;font-weight:600;color:var(--muted);margin-left:2px}.price-scope{font-size:11.5px;color:var(--muted);margin-top:2px}.price-feats{list-style:none;margin-top:8px;padding:0}.price-feats li{font-size:12px;color:var(--text);line-height:1.6;padding-left:14px;position:relative}.price-feats li:before{content:"・";position:absolute;left:0;color:var(--pink)}.price-foot{font-size:11px;color:var(--muted);line-height:1.6;background:var(--raised);border-radius:var(--r-md);padding:12px 14px;margin:8px 0 16px}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:50;text-align:center;background:var(--warn-text);color:#fff;font-size:12px;font-weight:600;padding:8px 12px}.mock-badge{position:fixed;top:8px;right:8px;font-size:10px;font-weight:700;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-pill);padding:3px 9px;z-index:10}.ph{text-align:center;margin:auto}.ph .brand{font-size:40px}.ph h2{font-family:var(--font-heading);font-size:18px;margin-top:16px}.ph p{color:var(--muted);font-size:13px;margin-top:8px}.ph .code{font-family:var(--font-num);font-size:11px;color:var(--muted);margin-top:10px;word-break:break-all;background:var(--raised);border-radius:var(--r-sm);padding:8px 10px}
