:root{--red: #d0101a;--red-dk: #9e0a12;--red-pale: #f7e9e6;--ink: #241f1c;--ink-mid: #5c534d;--ink-soft: #8b817a;--bg: #ece4d6;--surface: #fffdf8;--surface-2: #f6efe3;--line: #ded3c1;--line-hair: #e9e0d1;--serif: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;--sans: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Meiryo", sans-serif;--pad: 16px;--r: 12px;--r-sm: 9px;--header-h: 46px;--tabh: 62px}*{box-sizing:border-box;margin:0;padding:0}html{background:#6e6660;-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--ink);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,.tabbar,.header,.btn-map,.tl .map{-webkit-user-select:none;user-select:none;touch-action:manipulation}button,input,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;color:inherit}a{color:inherit}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--red);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.app{max-width:520px;margin:0 auto;height:100dvh;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.header{flex:none;height:calc(var(--header-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:var(--surface);border-bottom:1px solid var(--line)}.header img{height:14px;width:auto;display:block}.header .meta{font-size:11px;letter-spacing:.12em;color:var(--ink-soft);font-weight:700}.header .meta.warn{color:var(--red-dk)}.screen{flex:1;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;min-height:0}.screen-pad{padding:var(--pad) var(--pad) 26px}.screen{animation:screen-in .2s cubic-bezier(.2,0,0,1)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.noticebar{flex:none;background:var(--red-pale);border-bottom:1px solid #e6cfcb;display:flex;align-items:flex-start;gap:10px;padding:10px var(--pad) 11px;text-align:left;width:100%}.noticebar .tag{flex:none;font-size:10px;font-weight:700;letter-spacing:.1em;color:#fff;background:var(--red);padding:3px 7px;border-radius:4px;margin-top:2px}.noticebar .body{flex:1;min-width:0;display:block}.noticebar .txt{display:block;font-size:13.5px;line-height:1.65;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.noticebar.clamped .txt{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.noticebar .when{display:block;font-size:11px;color:var(--ink-soft);margin-top:5px;letter-spacing:.04em}.noticebar .caret{flex:none;font-size:10px;color:var(--ink-soft);margin-top:4px;letter-spacing:.08em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}.card+.card{margin-top:10px}.eyebrow{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}.eyebrow .k{font-size:10.5px;font-weight:700;letter-spacing:.22em;color:var(--ink-soft)}.eyebrow .left{margin-left:auto;font-size:12px;font-weight:700;color:var(--red-dk);letter-spacing:.04em}.card.now{border-color:#d9ccb6}.card.now h2{font-family:var(--serif);font-size:25px;font-weight:700;letter-spacing:.04em;line-height:1.35}.card .where{font-size:13px;color:var(--ink-mid);margin-top:4px}.bar{margin-top:13px;height:3px;background:var(--surface-2);border-radius:2px;overflow:hidden}.bar span{display:block;height:100%;background:var(--red);border-radius:2px}.bar-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-soft);margin-top:5px;letter-spacing:.04em}.card.next{background:var(--ink);border-color:var(--ink);color:#f4ede1}.card.next .eyebrow .k{color:#b7a795}.card.next .eyebrow .left{color:#f0b9b3}.card.next .time{font-family:var(--serif);font-size:40px;font-weight:700;line-height:1;letter-spacing:.01em;display:block}.card.next h2{font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.05em;margin-top:10px}.card.next .where{color:#c4b6a4}.btn-map{display:block;width:100%;margin-top:14px;padding:13px;text-align:center;background:var(--surface);color:var(--ink);border-radius:var(--r-sm);font-size:14.5px;font-weight:700;letter-spacing:.06em;text-decoration:none}.btn-map:active{background:#efe7d9}.tl .map:active,.tl li.more button:active,.noticebar:active,.composer .attach:active,.admin .btn:active,.admin .item .del:active{background:#241f1c17}.composer .send:active,.gate .go:active{background:#3a322c}.card.plain h2{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.04em;line-height:1.45}.card.plain .big{font-family:var(--serif);font-size:40px;font-weight:700;line-height:1;display:block;margin-bottom:10px}.card.plain p{font-size:13px;color:var(--ink-mid);margin-top:8px;line-height:1.75}.sec-title{display:flex;align-items:center;gap:9px;margin:24px 2px 11px}.sec-title h3{font-family:var(--serif);font-size:15px;font-weight:700;letter-spacing:.1em;flex:none}.sec-title .en{font-size:8.5px;letter-spacing:.24em;color:var(--ink-soft);text-transform:uppercase;flex:none}.sec-title .rule{flex:1;height:1px;background:var(--line)}.tl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.tl li{display:grid;grid-template-columns:44px 16px 1fr;gap:0 10px;padding:12px 14px 12px 12px}.tl li+li{border-top:1px solid var(--line-hair)}.tl .time{font-family:var(--serif);font-size:14px;font-weight:700;padding-top:2px}.tl .rail{position:relative}.tl .rail:before{content:"";position:absolute;left:50%;transform:translate(-50%);top:-12px;bottom:-12px;width:1px;background:var(--line)}.tl li:first-child .rail:before{top:10px}.tl li:last-child .rail:before{bottom:calc(100% - 10px)}.tl .rail:after{content:"";position:absolute;left:50%;top:6px;transform:translate(-50%);width:7px;height:7px;border-radius:50%;background:var(--surface);border:1.5px solid var(--line)}.tl .ttl{font-size:14.5px;font-weight:700;letter-spacing:.02em}.tl .sub{font-size:12.5px;color:var(--ink-mid);margin-top:1px}.tl .range{font-size:11.5px;color:var(--ink-soft);letter-spacing:.04em;margin-top:1px}.tl .map{display:inline-block;margin-top:7px;padding:5px 12px;border:1px solid var(--line);border-radius:99px;font-size:12px;text-decoration:none;color:var(--ink-mid)}.tl li.past{background:var(--surface-2)}.tl li.past .time,.tl li.past .ttl,.tl li.past .sub{color:var(--ink-soft)}.tl li.past .ttl{font-weight:400}.tl li.past .rail:after{background:var(--line);border-color:var(--line)}.tl li.more{display:block;padding:0;background:var(--surface-2)}.tl li.more button{width:100%;padding:11px 12px;font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-mid)}.tl li.now .time,.tl li.now .ttl{color:var(--red-dk)}.tl li.now .rail:after{background:var(--red);border-color:var(--red);width:9px;height:9px}.note{font-size:12px;color:var(--ink-soft);line-height:1.75;margin-top:14px;padding:0 2px}.hero{position:relative;height:168px;overflow:hidden;background:#3b332c;border-radius:var(--r)}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero .shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#1c140ee6,#1c140e59 55%,#1c140e00)}.hero .cap{position:absolute;left:16px;right:16px;bottom:15px;color:#fff}.hero .cap .k{font-size:9px;letter-spacing:.28em;color:#f2bdbd;font-weight:700;display:block;margin-bottom:6px}.hero .cap h1{font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.06em;line-height:1.45}.dl>div{display:grid;grid-template-columns:68px 1fr;gap:10px;padding:10px 0}.dl>div+div{border-top:1px solid var(--line-hair)}.dl dt{font-size:12px;color:var(--ink-soft);letter-spacing:.05em;padding-top:2px}.dl dd{font-size:13.5px;line-height:1.7}.cards{display:grid;gap:10px}.card.shot{padding:0;overflow:hidden}.card.shot figure{height:150px;background:var(--surface-2)}.card.shot img{width:100%;height:100%;object-fit:cover;display:block}.card.shot .txt{padding:13px 15px 15px}.card.shot .k{font-size:9px;letter-spacing:.26em;color:var(--ink-soft);font-weight:700;text-transform:uppercase}.card.shot h4{font-family:var(--serif);font-size:17px;font-weight:700;letter-spacing:.04em;margin-top:5px}.card.shot .meta{font-size:12px;color:var(--ink-mid);margin-top:3px}.card.shot p{font-size:13px;line-height:1.8;margin-top:7px}.rows>li{padding:11px 0}.rows>li+li{border-top:1px solid var(--line-hair)}.rows .n{font-size:13.5px;font-weight:700;letter-spacing:.03em}.rows .b{font-size:12.5px;color:var(--ink-mid);line-height:1.75;margin-top:2px}.pear-shot{height:150px;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);margin-bottom:13px}.pear-shot img{width:100%;height:100%;object-fit:cover;display:block}.bullets>li{font-size:13.5px;line-height:1.8;padding-left:14px;position:relative}.bullets>li+li{margin-top:6px}.bullets>li:before{content:"";position:absolute;left:0;top:11px;width:6px;height:1px;background:var(--red)}.chat-scroll{padding:14px var(--pad) 18px}.chat-empty{text-align:center;color:var(--ink-soft);font-size:13px;padding:56px 24px;line-height:2.1}.turn{margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start}.turn.mine{align-items:flex-end}.turn.tight{margin-top:-7px}.turn .who{font-size:11.5px;color:var(--ink-mid);font-weight:700;letter-spacing:.04em;margin:0 4px 4px}.bubble{max-width:84%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);border-top-left-radius:4px;padding:9px 13px 10px;font-size:14.5px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.turn.mine .bubble{background:#e6ddcb;border-color:#d8cbb4;border-top-left-radius:var(--r);border-top-right-radius:4px}.stamp{font-size:10.5px;color:var(--ink-soft);margin:4px 5px 0;letter-spacing:.04em}.shots{display:grid;gap:4px;margin-top:6px;max-width:84%}.shots.n1{grid-template-columns:1fr}.shots.n2,.shots.n4{grid-template-columns:1fr 1fr}.shots.n3,.shots.n5,.shots.n6{grid-template-columns:1fr 1fr 1fr}.shots button{display:block;width:100%;aspect-ratio:1;overflow:hidden;background:var(--surface-2);border-radius:var(--r-sm);border:1px solid var(--line);padding:0}.shots.n1 button{aspect-ratio:4 / 3}.shots img{width:100%;height:100%;object-fit:cover;display:block}.chat-notice{background:var(--red-pale);border:1px solid #e6cfcb;border-left:3px solid var(--red);border-radius:var(--r-sm);padding:11px 14px 12px;margin:4px 0 14px}.chat-notice .k{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--red-dk)}.chat-notice p{font-size:13.5px;line-height:1.7;margin-top:5px;white-space:pre-wrap}.chat-notice .when{font-size:11px;color:var(--ink-soft);margin-top:6px}.composer{flex:none;background:var(--surface);border-top:1px solid var(--line);padding:9px var(--pad) 11px}.queue{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.queue figure{position:relative;width:52px;height:52px;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}.queue img{width:100%;height:100%;object-fit:cover;display:block}.queue .x{position:absolute;top:2px;right:2px;width:19px;height:19px;border-radius:50%;background:#241f1cd9;color:#fff;font-size:12px;line-height:19px;text-align:center}.composer .bar-row{display:flex;align-items:flex-end;gap:7px}.composer textarea{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:20px;padding:9px 14px;font-size:16px;line-height:1.55;resize:none;max-height:116px;font-family:var(--sans)}.composer .attach,.composer .send{flex:none;height:38px;padding:0 14px;border-radius:19px;font-size:13.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap;border:1px solid var(--line);background:var(--bg)}.composer .send{background:var(--ink);color:var(--surface);border-color:var(--ink)}.composer .send:disabled{background:var(--bg);color:var(--ink-soft);border-color:var(--line)}.composer .attach:disabled{opacity:.4}.composer .caution{font-size:10.5px;color:var(--ink-soft);line-height:1.6;margin-top:7px}.composer .caution.alert{color:var(--red-dk)}.composer .locked{font-size:13px;color:var(--ink-mid);text-align:center;padding:7px 0}.tabbar{flex:none;height:calc(var(--tabh) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--line)}.tabbar button{position:relative;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}.tabbar .lbl{position:relative;display:inline-block;min-width:76px;padding:7px 16px;border-radius:999px;font-family:var(--serif);font-size:14px;font-weight:700;letter-spacing:.1em;text-align:center;transition:background-color .18s cubic-bezier(.2,0,0,1),color .18s}.tabbar button.on{color:var(--red-dk)}.tabbar button.on .lbl{background:var(--red-pale)}.tabbar button:active .lbl{background:#241f1c17}.tabbar button.on:active .lbl{background:#f0dcd8}.tabbar .dot{position:absolute;top:9px;right:50%;margin-right:-34px;width:7px;height:7px;border-radius:50%;background:var(--red)}.gate{position:fixed;top:0;right:0;bottom:0;left:0;background:#241f1cb3;display:flex;align-items:center;justify-content:center;padding:22px;z-index:60}.gate .box{background:var(--surface);width:100%;max-width:360px;border-radius:14px;padding:24px 22px 22px}.gate .k{font-size:9.5px;letter-spacing:.28em;color:var(--red-dk);font-weight:700;display:block;margin-bottom:8px}.gate h2{font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:.04em;line-height:1.5}.gate p{font-size:12.5px;color:var(--ink-mid);line-height:1.8;margin-top:9px}.gate input{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:var(--r-sm);padding:11px 13px;font-size:16px;margin-top:15px;font-family:var(--sans)}.gate .go{width:100%;margin-top:10px;padding:13px;border-radius:var(--r-sm);background:var(--ink);color:var(--surface);font-size:14.5px;font-weight:700;letter-spacing:.1em}.gate .go:disabled{background:var(--bg);color:var(--ink-soft)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#120d0af2;z-index:70;display:flex;flex-direction:column}.lightbox .body{flex:1;display:flex;align-items:center;justify-content:center;padding:14px;min-height:0}.lightbox img{max-width:100%;max-height:100%;object-fit:contain}.lightbox .bar-row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px calc(16px + env(safe-area-inset-bottom))}.lightbox .bar-row a,.lightbox .bar-row button{color:#fff;font-size:13px;letter-spacing:.06em;text-decoration:none;opacity:.9}.admin{padding:var(--pad) var(--pad) 50px}.admin .lead{font-size:12px;color:var(--ink-soft);line-height:1.75;margin-top:8px}.admin .lead.ok{color:var(--red-dk);font-weight:700}.admin textarea,.admin input[type=password]{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:11px 13px;font-size:16px;line-height:1.7;font-family:var(--sans)}.admin textarea{min-height:92px;resize:vertical}.admin .btn{padding:11px 17px;border:1px solid var(--ink);border-radius:var(--r-sm);font-size:13.5px;font-weight:700;letter-spacing:.06em}.admin .btn.primary{background:var(--ink);color:var(--surface)}.admin .btn.danger{border-color:var(--red);color:var(--red-dk)}.admin .btn:disabled{opacity:.38}.admin .btnrow{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}.admin .stat{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin .stat>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px}.admin .stat .n{font-family:var(--serif);font-size:25px;font-weight:700;line-height:1.1}.admin .stat .l{font-size:11px;color:var(--ink-soft);letter-spacing:.06em;margin-top:2px}.admin .item{padding:11px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);display:flex;gap:11px;align-items:flex-start}.admin .item+.item{margin-top:7px}.admin .item .c{flex:1;min-width:0}.admin .item .who{font-size:11px;color:var(--ink-soft)}.admin .item .b{font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.admin .item .del{font-size:12px;color:var(--red-dk);font-weight:700;flex:none}.installhint{flex:none;display:flex;align-items:center;gap:12px;padding:11px var(--pad) 12px;background:var(--ink);color:#f4ede1}.installhint .c{flex:1;min-width:0}.installhint b{font-size:13px;font-weight:700;letter-spacing:.03em;display:block}.installhint p{font-size:11.5px;line-height:1.6;color:#c4b6a4;margin-top:2px}.installhint .acts{flex:none;display:flex;align-items:center;gap:6px}.installhint .go,.installhint .close{min-height:34px;padding:0 13px;border-radius:17px;font-size:12.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.installhint .go{background:var(--surface);color:var(--ink)}.installhint .go:active{background:#e2d8c8}.installhint .close{color:#b7a795}.installhint .close:active{background:#ffffff1f}
