@font-face{font-family:"Noto Sans JP";src:url("assets/noto-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Noto Sans JP";src:url("assets/noto-medium.ttf") format("truetype");font-weight:500;font-display:swap}
:root{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;color:#fff;font-synthesis:none;--ease:cubic-bezier(.22,.8,.2,1);--space:24px;--nav-top:24px;--start:calc(var(--nav-top) + 56px + var(--space))}
*{box-sizing:border-box}html{min-height:100%;background:#cccccc fixed}body{margin:0;background:#cccccc}button,input{font:inherit}button{border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid #999999;outline-offset:4px}button{touch-action:manipulation}img{display:block;filter:grayscale(1)}button:active{filter:brightness(.92)}[hidden]{display:none!important}
.shell{position:relative;width:100%;min-height:100dvh;margin:auto;isolation:isolate;overflow:clip;--app-size:clamp(58px,18.83vw,82px)}
.wallpaper{position:fixed;inset:0;width:100%;z-index:-1;overflow:hidden;background:#cccccc;pointer-events:none}
.island{position:fixed;top:var(--nav-top);left:50%;transform:translateX(-50%);width:calc(min(100vw,430px) - 48px);z-index:30;border-radius:28px;background:#171717;overflow:hidden;box-shadow:0 8px 28px #17171708;transition:box-shadow .3s}
.nav-row{display:flex;align-items:center;height:56px;padding:0 8px 0 16px;gap:4px}.brand{display:flex;align-items:center;gap:5px;flex:1;min-width:0;white-space:nowrap;background:none;color:#fff;text-align:left;padding:0;font-size:14px;font-weight:500;letter-spacing:-.2px}.brand>span{min-width:0;white-space:nowrap}.brand img{flex:none}.nav-button{display:grid;place-items:center;width:44px;height:44px;flex:none;background:transparent;border-radius:50%}.nav-button[aria-expanded=true]{background:#ffffff12}.nav-button:hover{background:#ffffff0c}
.search-panel{padding:0 16px 18px;animation:reveal .25s var(--ease)}.search-field{height:44px;display:flex;align-items:center;gap:10px;background:#ffffff1a;border-radius:22px;padding:0 14px}.search-field input{width:100%;min-width:0;border:0;background:none;color:#fff;outline:none;font-size:12px}.search-field input::placeholder{color:#ffffff99}.search-results{max-height:240px;overflow:auto}.search-results:empty{display:none}.search-result{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;color:#fff;background:none;text-align:left;font-size:12px;border-radius:12px}.search-result img{width:22px;height:22px}.search-result:hover{background:#ffffff12}.empty-search{font-size:12px;color:#ffffffaa;padding:12px 8px;margin:0}
.menu-panel{display:flex;justify-content:space-between;padding:0 28px 22px;animation:reveal .25s var(--ease)}.menu-panel button{display:flex;align-items:center;flex-direction:column;gap:7px;width:54px;padding:0;background:none;color:#ffffffcc;font-size:9px;white-space:nowrap}.menu-panel button span{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#ffffff1f}.menu-panel button:hover span{background:#ffffff30}
#home{position:relative;max-width:430px;margin:auto;padding:var(--start) var(--space) var(--space)}.app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;width:100%;margin:auto;align-items:start}
.app-icon{display:grid;place-items:center;width:100%;aspect-ratio:1;background:var(--color);border-radius:20px;transition:transform .18s var(--ease),filter .18s}.app-icon:hover{transform:translateY(-2px)}.app-icon img{width:36px;height:36px}.date-widget{grid-column:span 2;grid-row:span 2;align-self:stretch;display:flex;flex-direction:column;background:#fff;border-radius:22px;color:#333333;padding:13px 18px 14px;text-align:left;overflow:hidden;transition:transform .18s}.date-widget:hover{transform:translateY(-2px)}.month{font-size:12px;font-weight:500;color:#666666;white-space:nowrap}.day{font-size:64px;font-weight:500;line-height:82px}.weekday{font-size:13px;color:#666666}
.content{position:relative;max-width:430px;margin:auto;padding:var(--start) var(--space) var(--space);}.cards{display:flex;flex-direction:column;gap:16px}.card{background:#fff;border-radius:24px;padding:22px 24px 24px;color:#333333}.card h1,.card h2{font-size:17px;font-weight:500;line-height:26px;margin:0 0 12px}.card p{font-size:14px;line-height:25px;margin:0;color:#666666;overflow-wrap:anywhere}.content.entering .cards{animation:cards-in .38s var(--ease) both}
.transition{position:fixed;z-index:20;pointer-events:none;overflow:hidden;will-change:transform;border-radius:20px}.transition .wallpaper-clone{position:absolute;inset:0;background:#cccccc;opacity:0}
.app-icon[data-app="profile"] img{filter:brightness(0) invert(1)}
.profile-image{filter:brightness(0) invert(1)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.calendar-weekday{font-size:11px;color:#888888;padding:4px 0 8px}.calendar-weekday.sunday{color:#666666}.calendar-weekday.saturday{color:#777777}
.calendar-day{display:grid;place-items:center;aspect-ratio:1;font-size:13px;border-radius:50%;color:#666666;background:transparent;min-width:0}
.calendar-day.has-updates{background:#eeeeee;color:#333333;font-weight:500;position:relative}
.calendar-day.has-updates::after{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:#777777;bottom:3px}
.calendar-day.today{background:#eeeeee}.calendar-day[aria-pressed=true]{background:#333333;color:#fff}.calendar-day[aria-pressed=true]::after{background:#fff}
.news-logs{display:flex;flex-direction:column;gap:16px}.news-entry h2{font-size:15px}.news-entry ul{margin:0;padding-left:18px;color:#666666;font-size:14px;line-height:25px}.news-entry li+li{margin-top:6px}
.card p+p{margin-top:12px}.card a{color:#555555;overflow-wrap:anywhere;text-underline-offset:4px}
@keyframes reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@keyframes cards-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:360px){.nav-row{padding-left:12px;gap:2px}.brand{font-size:12px;letter-spacing:-.4px}.nav-button{width:40px}.app-grid{gap:14px}.date-widget{padding:12px 14px}.day{font-size:54px;line-height:70px}.menu-panel{padding-left:24px;padding-right:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.social-links{display:flex;justify-content:center;align-items:center;gap:24px;padding:12px 0 4px}.social-link{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;transition:background .2s,transform .2s}.social-link:hover{background:#3333330a;transform:translateY(-2px)}

.aquarium-widget{margin-top:16px;border-radius:22px;overflow:hidden;background:#8ab0b6;pointer-events:none}.aquarium-widget canvas{display:block;width:100%;height:164px}
@media(max-width:360px){.aquarium-widget{margin-top:14px}}

.cards.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-card{aspect-ratio:1;min-width:0;display:grid;place-items:center;background:#fff;color:#777;border-radius:18px;padding:10px;font-size:13px;overflow:hidden;transition:transform .18s var(--ease)}
.gallery-card:hover{transform:translateY(-2px)}.gallery-card img{width:100%;height:100%;object-fit:contain;filter:none}
#gallery-modal{position:fixed;inset:0;margin:auto;width:calc(100vw - 48px);max-width:620px;max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:24px;background:#fff;color:#777;overflow:hidden;box-shadow:0 20px 80px #0003}
#gallery-modal::backdrop{background:#0006}.gallery-art{display:grid;place-items:center;aspect-ratio:1;font-size:28px;padding:24px;max-height:calc(100dvh - 48px)}.gallery-art img{max-width:100%;max-height:calc(100dvh - 96px);object-fit:contain;filter:none}
#gallery-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;font-size:24px;background:#eee;color:#555;line-height:1}
@media(max-width:360px){.menu-panel{padding-left:16px;padding-right:16px}.brand{font-size:11px}.nav-button{width:36px}}

#gallery-modal:focus,#gallery-art:focus,.contact-card #content-heading:focus{outline:none}
#contact-form{display:flex;flex-direction:column;gap:16px}#contact-form label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#555}
#contact-form input,#contact-form textarea{width:100%;border:0;border-radius:12px;background:#f2f2f2;padding:12px;color:#333;font:inherit;font-size:16px}#contact-form textarea{resize:vertical;min-height:120px}
#contact-form button{height:44px;border-radius:22px;background:#171717;color:#fff;font-size:14px}#contact-status{font-size:11px;line-height:1.7;color:#888;margin:0}

.book-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.book-tag{display:inline-block;padding:4px 10px;border-radius:12px;background:#eeeeee;color:#333333;font-size:11px;line-height:18px}.card p{white-space:pre-line}

.book-date{display:block;margin:-4px 0 16px;color:#888888;font-size:11px;line-height:18px}
