@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;--nav-height:60px;--start:calc(var(--nav-top) + var(--nav-height) + 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:16px;animation:reveal .42s 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:16px;animation:reveal .42s 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.today{box-shadow:inset 0 0 0 1px #bbbbbb}.calendar-day[aria-pressed=true]{background:#333333;color:#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}}
@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{position:relative;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{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;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){.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,.book-tag{display:inline-block;margin:0;padding:4px 10px;border-radius:12px;color:#333333;font-size:11px;font-weight:400;line-height:18px;border:1px solid transparent;white-space:nowrap}
.book-date{background:transparent;border-color:#bbbbbb}
.book-meta{display:flex;align-items:center;gap:8px;margin-top:18px}.book-meta .book-tags{margin-top:0;flex:1;min-width:0;align-items:center}
.book-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.book-expand{display:grid;align-items:center;justify-items:end;flex:none;width:36px;height:36px;padding:0;border-radius:50%;background:transparent;color:#888888;font-size:16px;line-height:1}.book-expand[aria-expanded="true"]{font-size:18px}.book-expand:hover,.book-expand:active{background:transparent;filter:none}
.book-more{align-self:center;width:56px;min-height:44px;border-radius:22px;background:#fff;color:#666666;font-size:20px}



.book-card{overflow:hidden}
#gallery-modal[open]{animation:gallery-arrive .42s var(--ease) both}
#gallery-modal[open]::backdrop{animation:gallery-backdrop .42s ease both}
@keyframes gallery-arrive{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gallery-backdrop{from{background:#0000}to{background:#0006}}

.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.calendar-header h2{flex:1;margin:0;text-align:center}.calendar-month-nav{display:grid;place-items:center;width:36px;height:36px;padding:0;background:none;color:#777;font-size:25px;line-height:1}
.post-category{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#eeeeee}.post-category img{filter:brightness(0);opacity:.75}
.log-filter{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#555;font-size:12px}.log-filter button{background:none;color:#555;font-size:12px;padding:8px 0}

.calendar-day.other-month{color:#bbbbbb}.calendar-day.other-month.has-updates{color:#777777}.calendar-day.other-month[aria-pressed=true]{color:#fff}

.nav-row{padding-left:8px}.brand{gap:8px}.brand>.brand-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#cccccc;overflow:hidden}.brand-icon img{width:26px;height:26px;object-fit:contain;filter:none}

@media(max-width:360px){.nav-row{padding-left:8px}.brand>.brand-icon{flex-basis:36px;width:36px;height:36px}}

.review-shelf{display:flex;flex-direction:column;gap:24px}.review-shelf-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:22px;padding:0 14px;border-bottom:8px solid #ac8c70;border-radius:0 0 4px 4px}.review-book{display:flex;align-items:end;justify-content:center;min-width:0;height:130px;padding:0;background:none}.review-cover{display:block;height:130px;max-width:100%;width:auto;object-fit:contain;border-radius:3px 3px 0 0;filter:saturate(.65);transition:transform .2s}.review-book:hover .review-cover{transform:translateY(-5px)}.review-demo-cover{width:86px;height:127px;padding:14px 10px;border-left:3px solid #ffffff25;display:flex;flex-direction:column;justify-content:space-between;color:#fff9}.review-demo-cover strong{font:400 11px/1.8 'Hiragino Mincho ProN',serif;letter-spacing:1px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.review-demo-cover small{font-size:8px}#review-modal{position:fixed;inset:0;margin:auto;width:calc(min(100vw,430px) - 48px);max-width:none;max-height:calc(100dvh - 48px);border:0;padding:0;border-radius:24px;background:#fff;color:#333;overflow:hidden;box-shadow:0 20px 80px #0002}#review-modal::backdrop{background:#0006}.review-scroll{max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.review-scroll:focus{outline:none}#review-modal .card{overflow:visible}#review-modal .book-tags{margin:0}#review-modal[open]{animation:review-arrive .25s var(--ease)}@keyframes review-arrive{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:360px){.review-shelf-row{gap:17px;padding:0 10px}.review-book,.review-cover{height:118px}.review-demo-cover{height:115px}.review-demo-cover strong{font-size:10px}}

/* Shared spacing between content cards across pages. */
.cards,.news-logs,.cards.gallery-grid{gap:24px}

/* Expanding glass controls for Book review. */
.review-filter{position:fixed;z-index:35;right:max(24px,calc((100vw - 430px)/2 + 24px));bottom:calc(24px + env(safe-area-inset-bottom,0px));display:flex;align-items:flex-end;gap:12px;color:#333}
.review-control{position:relative;width:56px;height:56px;border:1px solid #ffffffb3;border-radius:28px;background:linear-gradient(125deg,#ffffffb8,#f4f4f480);box-shadow:0 8px 28px #00000018,inset 0 1px 1px #fff;backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}
.review-control::before{content:"";position:absolute;right:-1px;bottom:-1px;width:56px;height:56px;border-radius:28px;background:linear-gradient(125deg,#fffffff2,#eeeeeed9);border:1px solid #ffffffc9;box-shadow:0 12px 40px #00000014;opacity:0;transition:width .42s cubic-bezier(.22,.8,.2,1),height .42s cubic-bezier(.22,.8,.2,1),opacity .2s;pointer-events:none}
.review-control.is-open::before{width:292px;height:300px;opacity:1}
.review-control:last-child.is-open::before{width:236px;height:200px}
.review-control-toggle{position:relative;z-index:2;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:transparent;color:#444;transition:background .3s,transform .4s}
.review-control-toggle[aria-expanded=true]{background:#fff8;transform:rotate(0deg)}
.review-control-toggle.is-active{background:#ffffffa6;box-shadow:inset 0 0 0 1px #fff}
.review-control-toggle svg{width:24px;height:24px}
.review-control-options{position:absolute;z-index:1;right:0;bottom:0;width:292px;height:300px;display:grid;align-content:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px;opacity:0;visibility:hidden;transform:translate(16px,24px) scale(.85);transform-origin:bottom right;transition:opacity .2s,transform .4s cubic-bezier(.22,.8,.2,1),visibility .2s;pointer-events:none}
.review-control.is-open .review-control-options{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:.06s}
.review-control:first-child.is-open{z-index:2}
.review-sort-choices{width:236px;height:200px;grid-template-columns:repeat(2,minmax(0,1fr))}
.review-filter-tag{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:76px;padding:8px 2px;gap:8px;border-radius:18px;color:#555;background:transparent;font-size:10px;line-height:16px;white-space:nowrap;transition:background .25s,box-shadow .25s,color .25s}
.review-filter-tag[aria-pressed=true]{color:#171717;background:linear-gradient(135deg,#fff9,#c9c9c9a6);box-shadow:inset 0 1px 2px #fff9,0 2px 8px #0000000d}
.review-filter-tag svg{display:block;flex:none;width:24px;height:24px}
.review-filter-tag:focus-visible{outline:2px solid #555;outline-offset:-4px}
@supports not (backdrop-filter:blur(1px)){.review-control{background:#eee}}
@media(max-width:350px){.review-filter{right:16px}.review-control.is-open::before,.review-control-options{width:264px}}

#review-modal[open],#gallery-modal[open]{animation:none;overflow:visible}
#review-modal .review-scroll,#gallery-art{border-radius:24px;overflow-x:hidden}
.thumbnail-flight{object-fit:contain;border-radius:4px;transform-origin:top left;filter:none;box-shadow:0 18px 50px #0002}
#gallery-modal{width:fit-content;max-width:calc(100vw - 48px)}
#gallery-art{aspect-ratio:auto;display:block;padding:24px}
#gallery-art img{width:auto;height:auto;max-width:min(572px,calc(100vw - 96px));max-height:calc(100dvh - 96px);margin:auto}

/* Classic Color home icons: same grid, native-size pictograms and soft depth. */
.app-icon{position:relative;border-radius:24%;background:linear-gradient(155deg,var(--icon-top,var(--color)),var(--icon-bottom,var(--color)));box-shadow:inset 0 1px 1px #ffffff75,inset 0 -1px 1px #00000008,0 5px 11px #00000016;overflow:hidden;transition:transform .18s var(--ease),filter .18s,box-shadow .18s}
.app-icon img,.app-icon[data-app="profile"] img{width:58%;height:58%;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 1px 1px #00000012)}
.app-icon[data-app="profile"]{--icon-top:#2dccca;--icon-bottom:#00949e}
.app-icon[data-app="photo"]{--icon-top:#ffffff;--icon-bottom:#f1f1f1}
.app-icon[data-app="photo"] img{width:80%;height:80%;filter:none}
.app-icon[data-app="book"]{--icon-top:#ffb323;--icon-bottom:#f17400}
.app-icon[data-app="mail"]{--icon-top:#22aeff;--icon-bottom:#0075f6}
.app-icon[data-app="note"]{--icon-top:#ffe94c;--icon-bottom:#ffc417}
.app-icon[data-app="note"] img{width:63%;height:65%}
.app-icon[data-app="folder"]{--icon-top:#12b6ff;--icon-bottom:#0069ed}
.app-icon[data-app="folder"] img{filter:invert(100%) sepia(14%) saturate(1197%) hue-rotate(164deg) brightness(103%) contrast(99%) drop-shadow(0 2px 1px #005a9920)}
.app-icon[data-app="video"]{--icon-top:#9a8aff;--icon-bottom:#6245ee}
.app-icon[data-app="home"]{--icon-top:#36cf74;--icon-bottom:#069c49}
.app-icon[data-app="diary"]{--icon-top:#ff7b85;--icon-bottom:#da3d53}
.app-icon[data-app="star"]{--icon-top:#ffd34a;--icon-bottom:#e6a719}
.app-icon[data-app="add"]{--icon-top:#9cc5d7;--icon-bottom:#668fa7}
.app-icon[data-app="add"] img{width:54%;height:54%}
.app-icon:hover{box-shadow:inset 0 1px 1px #ffffff75,0 8px 14px #0000001c}
.date-widget{box-shadow:0 5px 11px #0000000c}

.app-icon{background-color:var(--icon-bottom,var(--color))}
.app-icon[data-app="folder"] img{opacity:.86}

.app-icon[data-app="weather"]{--icon-top:#54bbfa;--icon-bottom:#0871d8}.app-icon[data-app="weather"] img{width:82%;height:82%;filter:none}

/* Keep the navigation controls and expanded panels on the same inset. */
.nav-row{height:var(--nav-height);padding:8px}
@media(max-width:360px){:root{--nav-height:52px}}
