/* Shared shell for the inner pages (offers, help, recording): the same header, language picker, leaf light,
   moonlight and page transitions as the home page. The home page keeps its own copy of these rules in site.css. */

/* ---------- page transitions (same-origin navigations, Chromium 126+ / Safari 18.2+) ---------- */
@view-transition{navigation:auto}
.top{view-transition-name:site-header}
::view-transition-old(root){animation:mp-fade-out .22s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:mp-fade-in .38s cubic-bezier(.22,1,.36,1) both}
::view-transition-group(site-header){animation-duration:.3s}
@keyframes mp-fade-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes mp-fade-in{from{opacity:0;transform:translateY(10px)}}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ---------- header ---------- */
:root{--header-height:74px}
.shell-page{position:relative;padding-top:var(--header-height)}
.shell-page .wrap{max-width:72rem;margin:0 auto;padding-inline:clamp(16px,4.5vw,48px)}
.top{position:fixed;top:0;left:0;right:0;z-index:40;padding-top:env(safe-area-inset-top,0px);
  background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.top .bar{position:relative;display:flex;align-items:center;gap:clamp(10px,2vw,24px);height:74px}
.top .brand{display:flex;align-items:center;text-decoration:none;flex:none}
.top .lockup{display:block;height:46px;width:calc(46px * 862.5 / 229.1)}
.top .nav{order:1;display:flex;align-items:center;gap:4px;margin-left:4px}
.top .nav>a,.top .nav .menu-toggle{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:0;border-radius:999px;background:transparent;color:var(--bark);font:inherit;font-weight:600;font-size:.88rem;white-space:nowrap;text-decoration:none;cursor:pointer}
.top .nav>a:hover,.top .nav .menu-toggle:hover{background:color-mix(in srgb,var(--sand) 70%,transparent)}
.top .nav>a[aria-current="page"]{background:color-mix(in srgb,var(--leaf) 20%,var(--sand));color:var(--olive)}
.top .bar-end{order:2;margin-left:auto;display:flex;align-items:center;gap:8px}
.top .pill-btn{display:flex;align-items:center;gap:6px;min-height:44px;background:color-mix(in srgb,var(--paper) 70%,transparent);border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;white-space:nowrap;color:var(--bark)}
.top .pill-btn svg{width:16px;height:16px;flex:none}
.top .icon-btn{width:44px;height:44px;min-width:44px;padding:0;justify-content:center}
.top .theme-btn{position:relative;overflow:hidden}
.top .theme-btn svg{position:absolute;inset:0;margin:auto;transition:transform .6s var(--ease-out),opacity .4s}
.top .theme-btn .moon{transform:translateY(130%) rotate(-40deg);opacity:0}
.night .top .theme-btn .sun{transform:translateY(-130%) rotate(60deg);opacity:0}
.night .top .theme-btn .moon{transform:none;opacity:1}
.top .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:999px;font-weight:650;text-decoration:none;cursor:pointer;border:1.5px solid transparent;white-space:nowrap;transition:box-shadow .25s,transform .25s}
.top .btn svg{width:16px;height:16px}
.top .btn-olive{background:var(--olive);color:var(--on-olive)}
.top .btn-olive:hover{box-shadow:0 0 0 6px color-mix(in srgb,var(--sun) 28%,transparent),0 10px 30px -8px color-mix(in srgb,var(--sun) 70%,transparent);transform:translateY(-1px)}
.top .head-cta{padding:10px 20px;font-size:.95rem}
.top .nav-more{position:relative;flex:none;min-width:0}
.top .site-more{display:none;position:absolute;left:0;top:calc(100% + 8px);width:min(240px,calc(100vw - 24px));padding:10px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow);z-index:2}
.top.menu-open .site-more{display:grid;gap:4px}
.top .site-more a,.top .site-more button{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:transparent;color:var(--bark);font:inherit;font-size:.95rem;text-align:left;text-decoration:none;cursor:pointer}
.top .site-more a:hover,.top .site-more button:hover{background:var(--sand)}
.top .site-more [aria-current="page"]{color:var(--olive);font-weight:650}
@media (min-width:1201px){.top .site-more .cta-dup{display:none}}
@media (max-width:1200px){
  :root{--header-height:calc(108px + env(safe-area-inset-top,0px))}
  .top{background:color-mix(in srgb,var(--paper) 94%,transparent);border-bottom:1px solid var(--line);box-shadow:none}
  .top .bar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:64px 44px;height:108px;gap:0 12px}
  .top .bar>.brand{grid-column:1;grid-row:1}
  .top .bar-end{grid-column:2;grid-row:1}
  .top .head-cta{display:none}
  .top .nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-column:1/-1;grid-row:2;width:100%;margin:0;gap:4px}
  .top .nav>a,.top .nav .menu-toggle{width:100%;min-width:0;padding:8px 3px;font-size:.85rem;border-radius:10px}
  .top .site-more{left:auto;right:0;top:calc(100% + 6px)}
}
@media (max-width:760px){
  .top{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
  .top .lockup{height:32px;width:calc(32px * 862.5 / 229.1)}
  .top .bar-end{gap:6px}
  .top .lang-btn{width:44px;height:44px;min-width:44px;padding:0;justify-content:center}
  .top .lang-btn #lang-name{display:none}
}
@media (max-width:480px){.top .lockup{width:120px;height:32px}.top .bar{column-gap:8px}}

/* ---------- language picker (same card as the home page) ---------- */
.gate{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px 16px;background:color-mix(in srgb,#120d08 32%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.gate-card{position:relative;width:min(620px,100%);background:var(--paper);color:var(--bark);border-radius:var(--r-l,28px);padding:clamp(24px,4vw,38px);display:grid;gap:22px;box-shadow:0 40px 90px -30px rgba(0,0,0,.55)}
.gate-brand .lockup{display:block;height:58px;width:calc(58px * 862.5 / 229.1)}
.gate-sticker{position:absolute;right:clamp(14px,3vw,30px);top:-46px;width:118px;height:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.2)) var(--art-filter);transform:rotate(6deg)}
.gate-ask{display:grid;gap:2px;color:var(--bark-2);font-size:.95rem;line-height:1.5}
.gate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gate-grid button{display:grid;gap:2px;justify-items:start;text-align:left;padding:16px 18px;border-radius:var(--r-m,20px);border:1.5px solid var(--line);background:var(--sand);cursor:pointer;color:var(--bark);font:inherit}
.gate-grid button:hover{border-color:var(--olive)}
.gate-grid button[aria-current="true"]{border-color:var(--olive);background:color-mix(in srgb,var(--leaf) 16%,var(--sand))}
.gate-grid .gl{font-size:1.22rem;font-weight:650}
.gate-grid .gs{font-size:.84rem;color:var(--bark-2)}
@media (max-width:460px){.gate-grid{grid-template-columns:1fr}.gate-sticker{width:92px;top:-40px}}

/* ---------- light: drifting leaf shade by day, moonlight by night ---------- */
.shell-shade{position:fixed;top:-160px;left:-160px;width:calc(100vw + 320px);height:calc(100lvh + 320px);pointer-events:none;z-index:30;background:url(leaf-shade.webp) repeat;background-size:900px;mix-blend-mode:multiply;opacity:.05;animation:shell-sway 17s ease-in-out infinite alternate;transition:opacity .8s}
@keyframes shell-sway{from{transform:translate3d(0,0,0) rotate(0)}to{transform:translate3d(-2.5%,1.5%,0) rotate(1.2deg)}}
.shell-moon{position:fixed;top:0;left:0;width:100vw;height:100lvh;pointer-events:none;z-index:29;opacity:0;transition:opacity 1.2s;
  background:radial-gradient(70% 55% at 12% 0%,rgba(150,180,230,.11),transparent 70%),radial-gradient(45% 40% at 92% 85%,rgba(240,176,74,.05),transparent 70%)}
.night .shell-shade{opacity:0}
.night .shell-moon{opacity:1}
@media (max-width:760px){.shell-shade{opacity:.035}}
@media (prefers-reduced-motion:reduce){.shell-shade{animation:none}}

/* a thin strip of the same sunlit (or moonlit) desk at the top of each inner page */
.shell-banner{position:absolute;left:0;right:0;top:0;height:clamp(260px,34vw,420px);z-index:0;pointer-events:none;overflow:hidden}
.shell-banner::before{content:"";position:absolute;inset:0;background:url(hero-backlit.webp) 70% 38%/cover no-repeat;opacity:.34;filter:var(--photo-filter);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.65) 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.65) 45%,transparent 100%)}
.night .shell-banner::before{background-image:url(hero-backlit-night.webp);opacity:.5;filter:none}
@media (max-width:760px){.shell-banner::before{background-image:url(hero-mobile.webp);background-position:60% 30%}.night .shell-banner::before{background-image:url(hero-mobile-night.webp)}}
.shell-page main{position:relative;z-index:1}

/* links with long unbroken words (Japanese katakana, e-mail addresses) must not widen the page */
.shell-page h1,.shell-page h2,.shell-page h3{overflow-wrap:anywhere}
.top .pill-btn svg,.top .btn svg{fill:none!important;stroke:currentColor}

/* ---------- About Tura drawer (same look as the home page) ---------- */
html.shell-locked{overflow:hidden}
.shell-about{position:fixed;inset:0;z-index:58}
.shell-about .sa-bg{position:absolute;inset:0;background:color-mix(in srgb,#120d08 45%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .24s}
.shell-about.open .sa-bg{opacity:1}
.shell-about .sa-panel{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);display:flex;flex-direction:column;background:var(--paper);color:var(--bark);transform:translateX(104%);transition:transform .28s var(--ease-out);box-shadow:-30px 0 60px -30px rgba(0,0,0,.45);outline:none}
.shell-about.open .sa-panel{transform:none}
.shell-about .sa-top{display:flex;justify-content:flex-end;padding:calc(12px + env(safe-area-inset-top,0px)) 18px 8px}
.shell-about .sa-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;cursor:pointer;color:var(--bark)}
.shell-about .sa-close svg{width:18px;height:18px}
.shell-about .sa-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px clamp(18px,4vw,36px) calc(30px + env(safe-area-inset-bottom,0px));display:grid;align-content:start;gap:22px}
.shell-about .sa-oc{margin:0;position:relative;display:grid;justify-items:center;gap:10px}
.shell-about .sa-oc::before{content:"";position:absolute;inset:6% 4% 12%;border-radius:50%;background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--sun-soft) 95%,transparent),color-mix(in srgb,var(--leaf) 14%,transparent) 55%,transparent 72%);filter:blur(4px)}
.shell-about .sa-oc img{position:relative;max-height:min(460px,52vh);max-width:100%;height:auto;width:auto;filter:drop-shadow(0 18px 24px rgba(0,0,0,.18)) var(--art-filter)}
.shell-about .sa-oc figcaption{position:relative;font-size:.86rem;color:var(--bark-2)}
.shell-about .sa-who{display:grid;gap:6px}
.shell-about .sa-who h2{margin:0;font-size:1.6rem;line-height:1.3}
.shell-about .sa-alias{font-weight:500;color:var(--bark-2);font-size:1rem;margin-left:.4em}
.shell-about .sa-role{color:var(--olive);font-weight:600}
.shell-about .sa-text{margin:0;line-height:1.85}
.shell-about .sa-blk{display:grid;gap:10px}
.shell-about .sa-blk h3{margin:0;font-size:1.05rem}
.shell-about .sa-blk p{margin:0;line-height:1.8;color:var(--bark-2)}
.shell-about .sa-gear{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);border-top:1px solid var(--line)}
.shell-about .sa-gear dt,.shell-about .sa-gear dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line)}
.shell-about .sa-gear dt{color:var(--bark-2);font-size:.92rem}
.shell-about .sa-gear dd{padding-left:24px;font-weight:600}
.shell-about .sa-studio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.shell-about .sa-studio figure{margin:0;display:grid;gap:8px}
.shell-about .sa-studio img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;filter:var(--photo-filter)}
.shell-about .sa-studio figcaption{font-size:.86rem;color:var(--bark-2)}
@media (prefers-reduced-motion:reduce){.shell-about .sa-panel,.shell-about .sa-bg{transition:none}}

/* details and screenshots open without moving what is around them */
.guide-shot img{height:auto}
/* language picker: scrolls on short screens, and the page behind stays still */
.gate{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:max(56px,env(safe-area-inset-top,0px)) 16px max(24px,env(safe-area-inset-bottom,0px))}
.gate-card{margin:auto;flex:none}
html:has(#gate:not([hidden])),html:has(#gate:not([hidden])) body{overflow:hidden}
@media (max-width:460px){
  .gate-card{padding:22px 18px;gap:16px}
  .gate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gate-grid button{padding:12px 12px}
  .gate-grid .gl{font-size:1.05rem}
  .gate-grid .gs{font-size:.74rem}
  .gate-brand .lockup{height:44px;width:calc(44px * 862.5 / 229.1)}
}
