:root{--primary:#254ce8;--primary-hover:#1c3dba;--bg:#fff;--bg-pale:#eaf3ff;--text:#142c45;--heading:#0b2a66;--text-muted:#526274;--accent-yellow:#fce790;--accent-red:#d51f45;--border:#cddff5;--border-strong:#9dbdea;--shadow:0 1px 2px #142c4514;--radius-sm:8px;--radius:12px;--radius-lg:20px;--tap:48px;--tap-primary:56px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--page-max:1200px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;font-size:16px;line-height:1.6}h1,h2,h3{margin:0;line-height:1.3}button{font:inherit;color:inherit}a{color:var(--primary)}img{max-width:100%}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100dvh;display:flex}.app__main{flex:1}.page{width:100%;max-width:var(--page-max);padding:var(--space-5) var(--space-4) var(--space-7);margin:0 auto}.page--narrow{max-width:520px}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack--tight{gap:var(--space-2)}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.header{display:none}@media (min-width:900px){.header{z-index:20;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);background:var(--bg);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}}.topbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);grid-template-columns:1fr auto 1fr;display:grid}.topbar__center{color:var(--primary);text-align:center;white-space:nowrap;grid-column:2;font-size:15px;font-weight:900}.topbar__start{grid-column:1;justify-self:start}.topbar__end{grid-column:3;justify-self:end}.topbar__back{align-items:center;gap:var(--space-1);min-height:var(--tap);padding:0 var(--space-2);color:var(--text);cursor:pointer;background:0 0;border:none;font-size:15px;font-weight:700;display:inline-flex}.topbar__icon{width:var(--tap);height:var(--tap);color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;display:inline-flex}@media (min-width:900px){.topbar{display:none}}.header__brand{letter-spacing:-.01em;color:var(--primary);white-space:nowrap;font-size:18px;font-weight:900;text-decoration:none}.header__nav{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.header__link{min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text);align-items:center;font-size:14px;text-decoration:none;display:inline-flex}.header__link[aria-current=page]{color:var(--primary);font-weight:700}@media (max-width:599px){.header__link--secondary{display:none}}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-5);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:default}.button--primary{min-height:var(--tap-primary);background:var(--primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--primary-hover)}.button--secondary{min-height:var(--tap-primary);border-color:var(--primary);color:var(--primary);background:#fff}.button--quiet{border-color:var(--border-strong);color:var(--text);background:#fff;font-weight:500}.button--text{min-height:var(--tap);padding:0 var(--space-2);color:var(--primary);font-weight:500;text-decoration:underline}.button--danger{border-color:var(--accent-red);color:var(--accent-red);background:#fff}.button--block{width:100%}.field{gap:var(--space-2);flex-direction:column;display:flex}.field__label{font-size:14px;font-weight:700}.field__control{align-items:center;display:flex;position:relative}.input,.select{width:100%;min-height:var(--tap);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);background:#fff;font-size:16px}.select{appearance:none;padding-right:var(--space-6);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23254CE8' d='M8 11 3 5h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}.input--with-action{padding-right:108px}.field__action{min-height:40px;padding:0 var(--space-2);color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:700;position:absolute;right:40px}.field__error{color:var(--accent-red);font-size:14px}.gate{min-height:100dvh;padding:var(--space-6) var(--space-4);background:var(--bg);flex-direction:column;justify-content:center;display:flex}.gate__inner{z-index:1;width:100%;max-width:420px;margin:0 auto;position:relative}.gate__title{margin-bottom:var(--space-6);color:var(--heading);letter-spacing:-.01em;text-align:center;font-size:32px;font-weight:900}.gate__submit{margin-top:var(--space-4)}.gate__shape{background:var(--bg-pale);z-index:0;border-radius:50%;position:fixed}.gate__shape--a{width:220px;height:220px;top:-60px;right:-70px}.gate__shape--b{width:180px;height:180px;bottom:-60px;left:-50px}.gate__shape--c{border-radius:var(--radius-lg);width:90px;height:90px;bottom:90px;left:40px;transform:rotate(-12deg)}.hero{background:var(--bg-pale);flex-direction:column;min-height:100dvh;display:flex;position:relative;overflow:hidden}.hero__inner{z-index:1;width:100%;max-width:var(--page-max);flex-direction:column;flex:1;margin:0 auto;display:flex;position:relative}.hero__lead{padding:0 var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.hero__heading{margin:var(--space-2) 0 0;color:var(--heading);letter-spacing:-.035em;font-size:clamp(40px,12.5vw,58px);font-weight:900;line-height:1.12}.hero__heading-line{display:block}.hero__collage{min-height:230px;max-height:46dvh;margin:var(--space-2) calc(var(--space-4) * -1) 0;flex:1;justify-content:center;align-items:flex-start;display:flex;position:relative;overflow:hidden}.hero__crew{z-index:2;justify-content:center;align-items:flex-end;display:flex;position:relative}.hero__crew img{object-fit:contain;object-position:top;width:auto;height:clamp(170px,44vw,250px)}.hero__crew--inline{align-self:stretch;align-items:flex-start;width:100%;height:100%}.hero__crew--inline img{flex:none;width:44%;height:auto;max-height:none}.hero__crew--inline img:first-child{margin-right:-7%;transform:rotate(-3deg)}.hero__crew--inline img:nth-child(2){z-index:1;width:46%;position:relative}.hero__crew--inline img:nth-child(3){margin-left:-7%;transform:rotate(3deg)}.mark{z-index:3;display:block;position:absolute}.mark--yellow-a{background:var(--accent-yellow);width:34px;height:46px;top:24%;left:0;transform:rotate(-14deg)}.mark--yellow-b{background:var(--accent-yellow);width:26px;height:38px;top:16%;right:0;transform:rotate(12deg)}.mark--red-a,.mark--red-b,.mark--red-c{background:var(--accent-red);border-radius:3px;width:5px;height:30px}.mark--red-a{top:3%;left:3%;transform:rotate(-22deg)}.mark--red-b{height:22px;top:0;left:11%;transform:rotate(-10deg)}.mark--red-c{top:2%;right:7%;transform:rotate(20deg)}.hero__actions{gap:var(--space-3);flex-direction:column;display:flex}.hero__crew--side{display:none}@media (min-width:900px){.hero{min-height:0;padding:var(--space-7) var(--space-5)}.hero__inner{align-items:center;gap:var(--space-4);grid-template-columns:1fr minmax(340px,560px) 1fr;display:grid}.hero__lead{text-align:center;padding:0}.hero__heading{color:var(--primary);letter-spacing:-.02em;font-size:clamp(46px,4.6vw,70px)}.hero__collage,.hero__crew--inline{display:none}.hero__actions{max-width:460px;margin:var(--space-6) auto 0}.hero__crew--side{justify-content:center;align-items:flex-end;gap:var(--space-1);flex-wrap:wrap;display:flex}.hero__crew img{height:clamp(140px,15vw,210px)}.hero__crew--side img:nth-child(2n){margin-bottom:var(--space-5)}.hero__crew--side img:nth-child(3n){margin-bottom:var(--space-2)}}.section{max-width:var(--page-max);padding:var(--space-6) var(--space-4);margin:0 auto}.section__head{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.section__title{color:var(--heading);letter-spacing:-.01em;font-size:24px;font-weight:900}.empty{padding:var(--space-6) 0;color:var(--text-muted);text-align:center}.loading{padding:var(--space-6);color:var(--text-muted);text-align:center}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--bg-pale);font-size:14px}.notice--error{color:var(--accent-red);background:#fdecef}.menu{position:relative}.menu__list{min-width:180px;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:30;background:#fff;position:absolute;top:calc(100% + 4px);right:0}.menu__item{width:100%;min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;font-size:14px;display:block}.menu__item:hover{background:var(--bg-pale)}.chip{align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-3);border:1px solid var(--border-strong);cursor:pointer;background:#fff;border-radius:999px;font-size:14px;display:inline-flex}.modal{border-radius:var(--radius-lg);width:min(92vw,420px);color:var(--text);border:none;padding:0;box-shadow:0 8px 32px #142c4540}.modal::backdrop{background:#142c4573}.modal__body{gap:var(--space-4);padding:var(--space-5);flex-direction:column;display:flex}.modal__title{font-size:18px;font-weight:700}.page--upload{text-align:center;padding-top:0}.upload__title{color:var(--heading);letter-spacing:-.02em;font-size:clamp(26px,7.5vw,34px);font-weight:900}.upload__summary{margin:0;font-size:16px;font-weight:900}.tile-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.tile{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-pale);position:relative;overflow:hidden}.tile__image{object-fit:cover;width:100%;height:100%;display:block}.tile__placeholder{width:100%;height:100%;color:var(--primary);justify-content:center;align-items:center;font-size:24px;display:flex}.tile__check--action{cursor:pointer;border:2px solid #fff;left:auto;right:6px}.upload__percent{color:var(--primary);letter-spacing:-.03em;margin:0;font-size:clamp(56px,18vw,72px);font-weight:900;line-height:1}.upload__percent-unit{font-size:.5em}.progress{background:var(--border);border-radius:999px;height:14px;overflow:hidden}.progress__bar{background:var(--primary);border-radius:999px;height:100%}.upload__count{text-align:center;margin:0;font-weight:700}.upload__complete{align-items:stretch}.upload__check{width:104px;height:104px;margin:var(--space-4) auto 0;border:5px solid var(--primary);color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:52px;display:flex}.page--album{padding-top:var(--space-3);gap:var(--space-3)}.album__head{align-items:center;gap:var(--space-2);display:flex}.album__head .section__title{margin-right:auto}.album__head-actions{align-items:center;gap:var(--space-2);display:flex}.album__select{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-sm);font-size:15px}.album__cancel{min-height:var(--tap);padding:0 var(--space-2);color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:15px;font-weight:700}.album__tabs{gap:var(--space-2);display:flex}.album__tab{min-height:44px;padding:0 var(--space-2);border:1px solid var(--primary);color:var(--primary);white-space:nowrap;cursor:pointer;background:#fff;border-radius:999px;flex:1;font-size:15px;font-weight:700}.album__tab--on{background:var(--primary);color:#fff}.select--wide{min-height:52px}.album__more>summary{min-height:var(--tap);color:var(--primary);cursor:pointer;align-items:center;font-size:14px;font-weight:700;display:flex}.album__more-body{gap:var(--space-3);padding-bottom:var(--space-2);flex-wrap:wrap;display:flex}.field--inline{gap:var(--space-1);flex:150px}.album__add{margin-top:var(--space-2)}@media (min-width:900px){.album__tabs{justify-content:flex-start}.album__tab{padding:0 var(--space-5);flex:none}.select--wide{max-width:320px}.album__add{display:none}}.tile-grid--album{gap:var(--space-2);grid-template-columns:repeat(3,1fr)}@media (min-width:700px){.tile-grid--album{grid-template-columns:repeat(4,1fr)}}@media (min-width:1100px){.tile-grid--album{grid-template-columns:repeat(6,1fr)}}.tile__button{cursor:pointer;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.tile--selected{outline:3px solid var(--primary);outline-offset:-3px}.tile__video{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tile__play{width:38px;height:38px;color:var(--primary);background:#ffffffe0;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.tile__duration{left:var(--space-1);bottom:var(--space-1);color:#fff;background:#142c45bf;border-radius:4px;padding:2px 6px;font-size:12px;position:absolute}.tile__check{color:#0000;background:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:flex;position:absolute;top:6px;left:6px;box-shadow:0 1px 3px #142c454d}.tile__check--on{background:var(--primary);border-color:var(--primary);color:#fff}.media{flex-direction:column;min-height:calc(100dvh - 64px);display:flex}.media__stage{margin:0 var(--space-3);border-radius:var(--radius);background:var(--bg-pale);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.media__image,.media__video{object-fit:contain;border-radius:var(--radius);width:100%;max-height:62dvh}.media__fallback{padding:var(--space-6);text-align:center;color:var(--text-muted)}.media__fallback-help{font-size:14px}.media__nav{color:#fff;cursor:pointer;background:#142c4573;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.media__nav--prev{left:var(--space-3)}.media__nav--next{right:var(--space-3)}.media__actions{width:100%;max-width:520px;padding:var(--space-4);margin:0 auto}.media__help{align-self:center}.media__details summary{min-height:var(--tap);color:var(--primary);cursor:pointer;align-items:center;display:flex}.details-list{gap:var(--space-1) var(--space-3);grid-template-columns:auto 1fr;margin:0;font-size:14px;display:grid}.details-list dt{color:var(--text-muted)}.details-list dd{overflow-wrap:anywhere;margin:0}.save-help{padding:var(--space-4);border-radius:var(--radius);background:var(--bg-pale);font-size:14px}.save-help p{margin:0 0 var(--space-3)}.save-help__title{margin:0 0 var(--space-2);font-size:15px}.album__select{margin-left:auto}.save-bar{z-index:25;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffffff7;position:fixed;bottom:0;left:0;right:0}.save-bar__inner{gap:var(--space-2);flex-direction:column;max-width:520px;margin:0 auto;display:flex}.save-bar__links{justify-content:center;gap:var(--space-4);display:flex}.save__summary{margin:0;font-weight:700}.save__hint{color:var(--text-muted);margin:0;font-size:14px}.save__list{gap:var(--space-2);flex-direction:column;max-height:40dvh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.save__row{align-items:center;gap:var(--space-3);display:flex}.save__name{overflow-wrap:anywhere;flex:1;font-size:14px}.admin__section{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg)}.admin__list{gap:var(--space-3);flex-direction:column;max-height:50dvh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.admin__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin__row .input,.admin__row .select{flex:160px;width:auto}.admin__order{flex:0 0 88px}.footer{padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));justify-content:center;display:flex}
