*{box-sizing:border-box}body{margin:0;font-family:Noto Sans JP,Roboto,sans-serif;background-color:#f2f7ff;color:#0f172a;min-height:100vh;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.app-shell{min-height:100vh;background:linear-gradient(180deg,#bcd6f8,#f2f7ff 120%);padding-top:64px}.app-header{position:fixed;top:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:linear-gradient(90deg,#1a73e8,#0f4fb8);color:#fff;z-index:1000;box-shadow:0 4px 16px #0f4fb84d}.site-name{font-weight:700;font-size:1.2rem;letter-spacing:.05em}.menu-toggle{width:44px;height:44px;border-radius:14px;border:none;background:#ffffff2e;display:inline-flex;flex-direction:column;justify-content:center;gap:5px;padding:10px;cursor:pointer;transition:background .2s ease}.menu-toggle span{display:block;width:100%;height:2px;border-radius:999px;background:#fff}.menu-toggle:active{background:#ffffff59}.content{padding:20px 18px 96px}.hero-carousel{margin-bottom:24px}.hero-carousel .swiper{border-radius:18px;box-shadow:0 12px 24px #0f4fb81f}.hero-carousel .swiper-slide{position:relative;overflow:hidden}.hero-carousel .swiper-slide a{display:block;position:relative;border-radius:18px;overflow:hidden}.hero-carousel .swiper-slide img{width:100%;height:200px;object-fit:cover;filter:saturate(1.1)}.hero-carousel .swiper-slide .slide-copy{position:absolute;inset:auto 0 0;padding:16px;background:linear-gradient(180deg,#05061200,#040612cc);color:#fff}.hero-carousel .swiper-slide .slide-copy .eyebrow{text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;margin:0 0 4px;opacity:.8}.hero-carousel .swiper-slide .slide-copy .title{margin:0;font-size:1rem;line-height:1.4}.hero-carousel .swiper-pagination-bullet-active{background:#fff}.user-summary{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.user-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;padding:18px;background:#fff;border-radius:18px;box-shadow:0 12px 24px #0f4fb81f}.user-card .label{margin:0 0 6px;font-size:.75rem;color:#6b7a99}.user-card .value{margin:0;font-size:1rem;font-weight:600;color:#0f4fb8}.info-card{padding:18px;background:#1a73e814;border-radius:18px;border:1px solid rgba(26,115,232,.2)}.info-card .info-title{margin:0 0 8px;font-weight:600;font-size:.95rem;color:#0f4fb8}.info-card .info-detail{margin:0;font-size:.9rem;line-height:1.5;color:#0f172a}.main-menu h2{margin:0 0 12px;font-size:1.05rem;color:#0f4fb8}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.menu-card{background:#fff;border-radius:18px;padding:20px 12px;text-align:center;box-shadow:0 12px 24px #0f4fb81f;display:flex;flex-direction:column;align-items:center;gap:12px;transition:transform .2s ease,box-shadow .2s ease}.menu-card .icon{font-size:1.5rem}.menu-card p{margin:0;font-size:.9rem;font-weight:500;color:#0f172a}.menu-card:active{transform:scale(.98);box-shadow:0 6px 16px #0f4fb833}.footer-menu{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:16px;background:#fff;border-top:1px solid rgba(15,79,184,.08)}.footer-menu a{display:block;text-align:center;padding:10px 0;color:#1a73e8;font-size:.9rem;font-weight:500;border-radius:12px;background:#1a73e80f}.footer-menu a:last-child{background:#ff638414;color:#c62828}.drawer{position:fixed;top:0;bottom:0;left:0;width:82%;max-width:320px;padding:24px;background:#fff;box-shadow:24px 0 48px #0310284d;transform:translate(-110%);transition:transform .3s ease;z-index:1200;display:flex;flex-direction:column;gap:24px}.drawer.is-open{transform:translate(0)}.drawer__backdrop{position:fixed;inset:0;background:#050a1973;backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .25s ease;z-index:1100}.drawer__backdrop.is-visible{opacity:1;visibility:visible}.drawer__header .drawer__greeting{margin:0;font-size:.85rem;color:#6b7a99}.drawer__header .drawer__username{margin:4px 0 0;font-size:1.2rem;font-weight:600;color:#0f172a}.drawer__points{padding:18px;border-radius:18px;background:linear-gradient(135deg,#1a73e8,#0f4fb8 110%);color:#fff}.drawer__points .label{margin:0 0 6px;opacity:.8;font-size:.85rem}.drawer__points .value{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:.03em}.drawer__links{display:flex;flex-direction:column;gap:14px}.drawer__links a{padding:12px 0;font-weight:500;color:#0f4fb8;border-bottom:1px solid rgba(26,115,232,.15)}@media(max-width:360px){.user-card,.menu-grid{grid-template-columns:1fr}}
