/* One blue palette; the original home artwork remains the strongest visual. */
:root{--paper:#143c5b;--white:#1c4767;--ink:#edf5fa;--muted:#b9cfde;--line:rgba(171,210,234,.23);--blue:#add5ed;--gold:#a7d1e9;--ivory:#edf5fa;color-scheme:dark}
body{position:relative;isolation:isolate;background:var(--paper)}
body:before{content:"";position:fixed;inset:0;z-index:-1;background:url('/assets/blue-canvas.png') center/cover no-repeat;opacity:.11;pointer-events:none}
.page-about:before{opacity:.075}.page-work:before{opacity:.065}.page-contact:before{opacity:.09}
::selection{background:#669bbd;color:#fff}
a,button,summary{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #b5ddf4;outline-offset:6px}
.site-header{border-color:var(--line)}.mobile-nav{background:#153d5b;box-shadow:0 14px 28px #08283e44}
.page-heading{background:linear-gradient(100deg,#3164871c,transparent)}
.section-kicker,.project-topline,.project-status,.case-heading>.container>p,.case-meta,.back-link,.case-number,.next-project>span{color:var(--muted)}
.section-title h2 em,.home-about h2 em{color:#b6d1e3}
.text-link,.copy-button{border-color:var(--line)}
.home-about,.job-note{background:#2b608116}
.portrait-frame,.about-photo{background:#2a577280;border:1px solid var(--line)}
.portrait-frame span,.about-photo span,.about-location,.home-about p{color:var(--muted)}
.contact-band{background:#2958781a;color:var(--ink);border-top:1px solid var(--line)}.contact-band:before{display:none}
.contact-band .section-kicker,.contact-band p{color:var(--muted)}.contact-line{border-color:var(--line)}
.contact-band .copy-button{border-color:#a8cde766;opacity:1}.contact-more{opacity:1;color:var(--muted)}
.site-footer,.footer-name span{color:var(--muted)}.footer-name{color:var(--ink)}
.case-section p,.case-section li{color:var(--muted)}.process-flow li{border-color:var(--line)}.process-flow span{color:var(--blue)}
.tool-tags span{color:var(--muted);border-color:var(--line)}
.skill-list article>span,.service-index,.service-en,.service-list small,.cooperation-steps,.contact-intro h2 span,.contact-intro p,.contact-detail article>span{color:var(--muted)}
.service-list article>a{border-color:var(--line)}.service-list article>a:hover{background:#366a8b55}
.contact-intro img{border-color:#2a5772}.solid-button{color:var(--ink);background:#2b6288;border:1px solid #6090af55}.solid-button:hover{background:#39769f}
.toast{background:#285a7a;color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 30px #08253b66}
.project-art,.art-flow,.art-news{background:#1c4968;color:#a9d1e8}.screenshot-link{background:#18425f}
.project-visual>img{aspect-ratio:auto;object-fit:contain}.project-row:hover .project-visual>img{transform:scale(1.012)}
.side-work-entry{display:grid;grid-template-columns:48px 1fr auto;gap:25px;align-items:center;padding:28px 30px;margin-top:62px;border:1px solid #88b7d451;background:linear-gradient(110deg,#386f9228,#234e6d30);transition:background .18s,border-color .18s,transform .16s}
.side-work-entry:hover{background:#3567873d;border-color:#a6cfe480}.side-work-entry.is-compact{margin:0 0 23px;padding:21px 26px}
.side-entry-icon{display:grid;place-items:center;color:#b3d9ed}.side-entry-icon svg{width:38px;height:38px}
.side-entry-label{font-size:8px;letter-spacing:2px;color:var(--muted)}.side-work-entry h2{font:27px/1.5 var(--serif);margin:3px 0 4px}.side-work-entry p{font-size:11px;color:var(--muted)}
.side-entry-action{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--blue)}.side-entry-action svg{width:17px;height:17px;transition:transform .18s}.side-work-entry:hover .side-entry-action svg{transform:translate(2px,-2px)}
.side-collection{padding-top:36px;padding-bottom:100px;min-height:52vh}.side-collection .back-link{margin-bottom:30px}
.side-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 24px;align-items:start}
.side-card{min-width:0;display:block}.side-thumb{overflow:hidden;border:1px solid var(--line);background:#1b4564;aspect-ratio:8/5}.side-thumb img{width:100%;height:100%;object-fit:contain;transition:transform .25s}.side-card:hover img{transform:scale(1.025)}
.side-card h2{font:20px/1.7 var(--serif);display:flex;justify-content:space-between;gap:8px;margin-top:14px;align-items:baseline}.side-card h2 svg{width:12px;height:12px;color:var(--muted)}
.gallery-note{font-size:10px;color:var(--muted);line-height:1.9;margin-top:25px;letter-spacing:.4px}.side-back{padding-top:34px}.side-back .back-link{margin-bottom:0}.side-back+.page-heading{padding-top:40px}
.side-case{display:grid;grid-template-columns:1.03fr 1fr;gap:64px;padding-top:55px;padding-bottom:85px;align-items:start}.side-case-image{position:sticky;top:30px}.side-case-image img{width:100%;border:1px solid var(--line)}.side-case-image .gallery-note{margin-top:10px}
.side-case-copy .case-meta{margin:0;padding:0 0 25px}.side-case .case-section{padding:25px 0}.side-case .case-section h2{font-size:26px;margin:0 0 16px}.side-case .case-section p,.side-case .case-section li{font-size:12px}.side-case-copy>.text-link{margin-top:28px}
.about-notes{display:grid;grid-template-columns:.9fr 1.2fr;gap:95px;padding-bottom:90px;align-items:start}.about-notes>div>h2{font:33px/1.65 var(--serif);margin-bottom:20px}.about-notes>div>p{font-size:12px;line-height:2;color:var(--muted);max-width:260px}
.about-note{border-top:1px solid var(--line)}.about-note:last-child{border-bottom:1px solid var(--line)}.about-note summary{list-style:none;display:flex;align-items:center;gap:20px;padding:22px 0;cursor:pointer;transition:color .18s}.about-note summary::-webkit-details-marker{display:none}.about-note summary:hover{color:var(--blue)}
.note-number{font:12px var(--english);color:var(--muted);align-self:flex-start;margin-top:8px}.about-note summary>div>span{display:block;font-size:8px;letter-spacing:1.8px;color:var(--muted)}.about-note summary h3{font:24px/1.6 var(--serif);margin-top:4px}.note-toggle{margin-left:auto;font-size:25px;font-weight:300;color:var(--blue);transition:transform .2s}.about-note[open] .note-toggle{transform:rotate(45deg)}
.about-note-body{padding:0 0 28px 33px}.about-note-body h4{font:17px/1.9 var(--serif);font-weight:400;margin:0 0 14px;color:var(--ink)}.about-note-body p{font-size:12px;color:var(--muted);line-height:2.1;margin-bottom:12px}.interest-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.interest-tags span{font-size:9px;padding:3px 10px;border:1px solid var(--line);color:#c5dfed;border-radius:2px}
.life-lanes .life-lane-side>span{color:var(--blue)}.life-track:before{background:repeating-linear-gradient(to bottom,#93bbd180 0,#93bbd180 5px,transparent 5px,transparent 11px)}.life-node{border-color:#8ab6d1}.life-node.is-side:after{background:var(--blue)}
.quest-card{background:#1e4a687d;box-shadow:none}.quest-card.is-current{background:#285d7e99;border-color:#92c0dc70;box-shadow:none}.quest-card.is-current .quest-meta,.quest-card.is-current .quest-context,.quest-card.is-current .quest-description{color:var(--muted)}
.quest-meta{flex-wrap:nowrap;min-height:34px}.quest-glyph{display:block;flex:0 0 34px;width:34px;height:34px;color:#b2d9ed;margin:-5px -4px -5px 0}.quest-glyph svg{width:100%;height:100%}.quest-card h4{margin-top:10px}
.quest-link{color:var(--blue)}.life-years a{transition:background .16s,border-color .16s,transform .16s}.life-years a:hover{background:#35678766}
.tap-echo{position:fixed;z-index:150;pointer-events:none;width:26px;height:26px;border:1px solid #c4e8fa9c;border-radius:50%;transform:translate(-50%,-50%);animation:tap-echo .42s ease-out forwards}
@keyframes tap-echo{from{opacity:.7;transform:translate(-50%,-50%) scale(.35)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}
@keyframes note-in{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.about-note[open] .about-note-body{animation:note-in .2s ease-out}
.copy-button,.solid-button,.side-card,.side-work-entry,.menu-toggle,.life-years a{transition:transform .15s,background .18s,border-color .18s}
.copy-button:active,.solid-button:active,.side-card:active,.side-work-entry:active,.menu-toggle:active,.life-years a:active{transform:translateY(1px) scale(.99)}.text-link:active,.desktop-nav a:active,.quest-link:active{opacity:.65}.about-note summary:active{color:#fff}
@media(max-width:950px){.side-grid{gap:25px 18px}.side-card h2{font-size:17px}.side-case{gap:35px}.about-notes{gap:50px}}
@media(max-width:680px){.side-work-entry,.side-work-entry.is-compact{grid-template-columns:31px 1fr;gap:16px;padding:20px;margin-top:35px}.side-work-entry.is-compact{margin:5px 0 12px}.side-entry-icon svg{width:29px;height:29px}.side-entry-label{font-size:7px;letter-spacing:1.2px}.side-work-entry h2{font-size:24px}.side-work-entry p{font-size:10px;line-height:1.9}.side-entry-action{grid-column:2;font-size:10px;gap:12px;margin-top:-4px}.side-entry-action svg{width:12px;height:12px}.side-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.side-card h2{font-size:18px;line-height:1.7;margin-top:10px}.side-collection{padding-top:25px;padding-bottom:60px}.side-collection .back-link{margin-bottom:25px}.gallery-note{font-size:9px;margin-top:30px}.side-case{grid-template-columns:1fr;gap:30px;padding-top:32px;padding-bottom:55px}.side-case-image{position:static}.side-case .case-section h2{font-size:25px}.side-back{padding-top:25px}.side-back+.page-heading{padding-top:28px}.about-notes{grid-template-columns:1fr;gap:25px;padding-bottom:45px}.about-notes>div>h2{font-size:29px;margin-bottom:13px}.about-notes>div>p{max-width:none;font-size:11px}.about-note summary{padding:18px 0;gap:16px}.about-note summary h3{font-size:23px}.about-note summary>div>span{font-size:7px}.about-note-body{padding-left:28px}.about-note-body h4{font-size:16px}.about-note-body p{font-size:12px}.quest-meta{min-height:25px;align-items:flex-start;gap:3px}.quest-meta>span:first-child{font-size:7px;line-height:1.7;overflow-wrap:anywhere;max-width:calc(100% - 22px)}.quest-glyph{flex-basis:24px;width:24px;height:24px;margin:-3px -3px 0 0}.quest-card h4{margin-top:9px}.product-screenshot figcaption{flex-wrap:wrap}.product-screenshot figcaption>a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.tap-echo{display:none}}
