:root{--color-ink: #4d4552;--color-primary: #907280;--color-primary-border: #b79aa7;--color-accent: #f1e5e7;--color-accent-deep: #eddee0;--color-surface-warm: #f1edeb;--color-cream: #f7f4ef;--color-success: #abb5a1;--color-icon: #222222;--color-line: #d1d1d1;--color-bg: #ffffff;--color-muted: #9b93a0;--font-jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--font-logo: "Cormorant Garamond", "Times New Roman", serif;--text-3xl: 28px;--text-2xl: 22px;--text-xl: 18px;--text-lg: 16px;--text-md: 14px;--text-sm: 12px;--text-xs: 10px;--text-2xs: 8px;--weight-regular: 400;--weight-medium: 500;--weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 18px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 8px;--radius-md: 14px;--radius-pill: 999px;--shadow-card: 0 0 2px rgba(0, 0, 0, .25);--shadow-card-strong: 0 0 4px rgba(0, 0, 0, .25);--ease-out: cubic-bezier(.22, 1, .36, 1);--duration-fast: .14s;--duration-base: .24s;--frame-width: 402px;--gutter: 16px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-jp);color:var(--color-ink);background:#e9e4e0;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit;border:none;background:none;padding:0;cursor:pointer}ul{margin:0;padding:0;list-style:none}p,h1,h2,h3{margin:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.stage{min-height:100dvh;display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 16px 32px}.stage__title{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-primary);letter-spacing:.08em;text-align:center}.stage__title strong{display:block;font-family:var(--font-logo);font-size:var(--text-2xl);letter-spacing:.24em}.stage__spec{display:block;margin-top:4px;font-size:var(--text-sm);letter-spacing:.04em;color:var(--color-primary-border);font-variant-numeric:tabular-nums}.device-slot{width:calc(var(--device-w) * var(--device-scale));height:calc(var(--device-h) * var(--device-scale));flex:none}.device{width:var(--device-w);height:var(--device-h);transform:scale(var(--device-scale));transform-origin:top left;background:var(--color-bg);border-radius:var(--device-radius);box-shadow:0 24px 60px #4d45523d;overflow:hidden;clip-path:inset(0 round var(--device-radius));position:relative;display:flex;flex-direction:column}.stage--full{padding:0;gap:0}.stage--full .stage__title{display:none}.stage--full .device-slot{width:100%;height:100dvh}.stage--full .device{width:100%;height:100dvh;transform:none;border-radius:0;clip-path:none;box-shadow:none}.device__scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.device__scroll::-webkit-scrollbar{display:none}.screen-enter{animation:screen-in var(--duration-base) var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.screen{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-8);background:var(--color-bg);min-height:100%}.screen__tail{height:var(--space-4)}.gutter{padding-inline:var(--gutter)}.block{display:flex;flex-direction:column;gap:var(--space-2)}.block__title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-ink)}.empty{padding:var(--space-6) 0;text-align:center;font-size:var(--text-md);color:var(--color-muted)}.appbar{padding-top:calc(12px + env(safe-area-inset-top,0px));background:var(--color-bg);position:sticky;top:0;z-index:5}.appbar__row{height:52px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between}.appbar__icon{width:24px;height:24px;display:grid;place-items:center}.appbar__title{font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-ink)}.logo{display:block;width:105px;height:33px}.reserved-head{display:flex;align-items:baseline;justify-content:space-between;padding-inline:var(--gutter);gap:var(--space-4)}.reserved-head__title{font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-ink)}.reserved-head__count{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink)}.reserved-head__count strong{font-size:var(--text-xl);font-weight:var(--weight-medium);margin-inline:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:12px 28px;border-radius:var(--radius-pill);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:1.2;white-space:nowrap;transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-cream)}.btn--primary:hover:not(:disabled){background:#7f6371}.btn--outline{background:var(--color-bg);color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.btn--outline:hover:not(:disabled){background:var(--color-accent)}.btn--soft{background:var(--color-accent);color:var(--color-primary)}.btn--soft:hover:not(:disabled){background:var(--color-accent-deep)}.btn--block{width:100%}.btn__leading{font-size:var(--text-lg);line-height:1}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:4px 16px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary-border);background:transparent;transition:background-color var(--duration-fast) var(--ease-out)}.chip--selected{background:var(--color-accent);box-shadow:none}.chip--success{color:var(--color-success);background:transparent;box-shadow:none;border:1px dashed var(--color-success);font-size:var(--text-2xs);padding:3px 15px}.chip--add{border:1px dashed var(--color-primary-border);box-shadow:none}button.chip:hover{background:var(--color-accent)}.segmented{display:flex;width:100%}.segmented__item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:8px 10px;background:var(--color-surface-warm);border:1px solid var(--color-primary-border);border-inline-width:0;color:var(--color-primary);font-weight:var(--weight-medium);transition:background-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}.segmented__item:first-child{border-left-width:1px;border-radius:var(--radius-md) 0 0 var(--radius-md)}.segmented__item:last-child{border-right-width:1px;border-radius:0 var(--radius-md) var(--radius-md) 0}.segmented__item.is-active{background:var(--color-primary);border-color:var(--color-primary-border);color:var(--color-cream)}.segmented__label{font-size:var(--text-md);text-align:center;line-height:1.3}.segmented__sub{font-size:var(--text-md)}.segmented__item:has(.segmented__sub) .segmented__label{font-size:var(--text-xl)}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:24px}.filter-row__chips{display:flex;align-items:center;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.filter-row__chips::-webkit-scrollbar{display:none}.filter-row--wrap{flex-wrap:wrap;justify-content:flex-start}.link-right{display:inline-flex;align-items:center;flex:none;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-primary)}.week-selector{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 12px}.week-selector__label{flex:1;text-align:center;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-primary)}.week-selector__nav{width:24px;height:24px;display:grid;place-items:center}.date-cards{display:flex;justify-content:space-between;gap:6px;padding-inline:14px}.date-card{flex:1;min-width:0;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--color-line);background:var(--color-bg);color:var(--color-primary);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.date-card.is-active{background:var(--color-primary);border-color:var(--color-cream);color:var(--color-cream)}.date-card__label{font-size:var(--text-sm);line-height:20px}.date-card__day{font-size:var(--text-lg);line-height:20px}.card-list{display:flex;flex-direction:column;gap:var(--space-4)}.booking-card{display:flex;flex-direction:column;gap:var(--space-2);padding:14px var(--space-4);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-card)}.booking-card__chips{display:flex;justify-content:flex-end;gap:var(--space-2)}.booking-card__body{display:flex;align-items:center;gap:var(--space-2)}.booking-card__thumb{flex:none;width:106px;height:90px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-warm)}.booking-card__thumb img,.summary__thumb img,.article-card__thumb img,.banner img{width:100%;height:100%;object-fit:cover;display:block}.booking-card__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.booking-card__title{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-ink)}.booking-card__rating,.summary__rating{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink)}.booking-card__meta,.summary__meta{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink)}.booking-card__meta svg,.summary__meta svg{flex:none}.booking-card__actions{display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.booking-card__actions .btn{flex:1;padding-inline:var(--space-4)}.add-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:198px;padding:var(--space-12) var(--space-8);border:1px dashed var(--color-primary-border);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--color-accent),var(--color-accent-deep));box-shadow:var(--shadow-card-strong)}.add-card__text{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-primary);text-align:center}.carousel{display:flex;gap:var(--space-4);padding-inline:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;touch-action:pan-x}.carousel.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.carousel::-webkit-scrollbar{display:none}.carousel__item{flex:0 0 calc(100% - var(--space-4));scroll-snap-align:center}.carousel__item>*{height:100%}.banner{margin-inline:8px;height:152px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-warm)}.dots{display:flex;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.dots span{width:8px;height:8px;border-radius:50%;background:var(--color-line)}.dots span.is-active{background:var(--color-primary-border)}.dots--slots span.is-filled{background:var(--color-accent-deep)}.dots--slots span.is-active{width:20px;border-radius:4px;background:var(--color-primary)}.article-list,.article-card{display:flex;flex-direction:column;gap:var(--space-2)}.article-card{padding-bottom:var(--space-2);border-bottom:1px solid var(--color-line)}.article-card__row{display:flex;align-items:center;gap:var(--space-2)}.article-card__thumb{flex:none;width:100px;height:100px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-warm)}.article-card__body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.article-card__title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:#000}.article-card__meta{display:flex;align-items:center;gap:var(--space-1)}.article-card__tag{padding:4px 8px;border-radius:66px;background:var(--color-accent);color:var(--color-primary);font-size:var(--text-2xs);font-weight:var(--weight-medium)}.article-card__date{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--color-line)}.modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:calc(var(--space-6) + env(safe-area-inset-top,0px)) 14px calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:#4d45526b;animation:modal-fade var(--duration-base) var(--ease-out) both}.modal__panel{width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;border-radius:var(--radius-md);animation:modal-rise var(--duration-base) var(--ease-out) both}.modal__panel::-webkit-scrollbar{display:none}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{transform:translateY(12px)}to{transform:none}}.sheet__head{position:relative}.sheet__close{position:absolute;top:50%;transform:translateY(-50%);right:var(--space-4);z-index:2;width:24px;height:24px;display:grid;place-items:center}.sheet{border-radius:var(--radius-md);overflow:hidden;box-shadow:0 12px 40px #3c323c2e;background:var(--color-bg)}.sheet__head{height:58px;display:grid;place-items:center;background:var(--color-accent)}.sheet__head h1{font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-primary)}.sheet__body{display:flex;flex-direction:column;padding-bottom:var(--space-6)}.sheet__lead{padding:var(--space-2) var(--space-5);text-align:center;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-ink)}.sheet__text{padding:var(--space-2) var(--space-5);font-size:var(--text-sm);line-height:1.75;color:var(--color-ink)}.sheet__subhead{padding:var(--space-2) var(--space-5);text-align:center;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-ink)}.sheet__notice{padding:var(--space-2) var(--space-5);font-size:var(--text-sm);line-height:1.9;color:var(--color-ink);white-space:pre-line}.sheet__action{display:flex;justify-content:center;padding:var(--space-5) 0}.rule{border:none;border-top:1px solid var(--color-line);margin:var(--space-2) var(--space-5)}.section-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-ink)}.section-header__rule{width:3px;height:20px;border-radius:2px;background:var(--color-primary)}.summary{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-5)}.summary__thumb{flex:none;width:106px;height:90px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface-warm)}.summary__info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.summary__title{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-ink)}.item-list{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);color:var(--color-ink)}.complete__icon{display:flex;justify-content:center;padding-top:var(--space-12)}.complete__title{padding:var(--space-4) var(--space-5) var(--space-2);text-align:center;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-ink)}.complete__text{padding:0 var(--space-5) var(--space-4);text-align:center;font-size:var(--text-lg);line-height:1.6;color:var(--color-ink)}.toast{position:absolute;left:50%;bottom:32px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:var(--space-2);width:min(360px,calc(100% - 32px));justify-content:center;padding:var(--space-5) var(--space-4);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-primary);font-size:var(--text-xl);font-weight:var(--weight-medium);box-shadow:var(--shadow-card-strong);animation:toast-in var(--duration-base) var(--ease-out) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.bottom-nav{position:relative;flex:none;height:82px;display:flex;align-items:stretch;background:var(--color-accent);padding-inline:6px;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav__group{flex:1;display:flex}.bottom-nav__notch{flex:none;width:75px}.bottom-nav__item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:0 2px;color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;transition:opacity var(--duration-fast) var(--ease-out)}.bottom-nav__item span{white-space:nowrap;font-size:11px}.bottom-nav__item:not(.is-active){opacity:.72}.bottom-nav__item:hover{opacity:1}.bottom-nav__member{position:absolute;left:50%;top:-10px;transform:translate(-50%);width:76px;height:76px;border-radius:40px;background:var(--color-primary);color:var(--color-cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);box-shadow:var(--shadow-card);transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.bottom-nav__member:hover{background:#7f6371}.bottom-nav__member:active{transform:translate(-50%) scale(.96)}.bottom-nav__member.is-active{box-shadow:0 0 0 3px var(--color-bg),0 0 0 5px var(--color-primary-border)}.device__scroll--with-nav .screen{padding-bottom:var(--space-6)}.placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding-block:var(--space-12)}.placeholder__panel{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-8) var(--space-6);border:1px dashed var(--color-primary-border);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--color-accent),var(--color-accent-deep));text-align:center}.placeholder__icon{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--color-bg)}.placeholder__lead{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-primary);line-height:1.6}.placeholder__note{font-size:var(--text-sm);line-height:1.8;color:var(--color-ink)}
