*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5eeeb;color:#22201e;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}main{max-width:1600px;margin:auto}header{position:relative;padding:32px 0 8px}h1{width:46%;max-width:680px;margin:0 auto;line-height:0}h1 img{width:100%;height:auto;mix-blend-mode:multiply}.motion{position:absolute;right:4%;top:32px;width:42px;height:42px;border:1px solid #d2c8c1;border-radius:50%;background:transparent;font-size:15px}.studio{position:relative;width:100%;aspect-ratio:1487/615;isolation:isolate}.scene{position:absolute;inset:0;background-image:url(assets/studio.png);background-size:100% auto;background-position:center 47.4%;mask-image:linear-gradient(transparent,#000 4%,#000 94%,transparent)}#people{position:absolute;inset:0}.person{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);border:0;background:transparent;border-radius:45%;color:#25211e;transition:filter .3s,background .3s}.person::after{content:"+";position:absolute;bottom:7%;left:50%;transform:translateX(-50%) scale(.75);width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#faf6efdf;box-shadow:0 3px 12px #35251b1c;opacity:0;transition:.2s;font-size:21px}.person:hover::after,.person:focus-visible::after{opacity:1;transform:translateX(-50%) scale(1)}.person:hover{background:radial-gradient(ellipse,#fff4bf25,transparent 70%)}.person:focus-visible{outline:2px solid #88734b;outline-offset:-5px}.person-label{position:absolute;bottom:-1%;left:50%;transform:translateX(-50%);white-space:nowrap;opacity:0;background:#fffaf3f0;border-radius:100px;padding:6px 12px;font-size:12px;pointer-events:none;transition:.2s}.person:hover .person-label,.person:focus-visible .person-label{opacity:1}.mobile-portrait{display:none}.games{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 3.6% 40px}.game{display:flex;align-items:center;min-height:152px;text-decoration:none;border-radius:27px;background:#eadedb;overflow:hidden;position:relative;transition:transform .25s,box-shadow .25s}.game:hover{transform:translateY(-5px);box-shadow:0 12px 25px #58473514}.game-art{width:53%;align-self:stretch;background-image:url(assets/studio.png);background-repeat:no-repeat;background-size:425% auto;background-position:6% 96%}.game-catch .game-art{background-position:69% 96%}.game-title{font-size:clamp(16px,2.1vw,30px);font-weight:800;white-space:nowrap;position:relative;padding:12px 10px 12px 0}.game-title small{display:flex;justify-content:space-between;margin-top:15px;font-size:9px;font-weight:500;letter-spacing:2px;opacity:.65}.game-title small span{font-size:20px;line-height:12px}footer{margin:0 4%;padding:0 0 24px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#8a7f78}dialog{border:0;background:#f7f2eb;border-radius:30px;padding:34px;max-width:760px;width:calc(100% - 40px);overflow:visible;box-shadow:0 32px 100px #291c3533}dialog[open]{display:grid;grid-template-columns:48% 52%;animation:arrive .25s ease-out}dialog::backdrop{background:#3c302e60;backdrop-filter:blur(9px)}.close{position:absolute;right:15px;top:15px;border:0;background:transparent;width:42px;height:42px;border-radius:50%;font-size:30px;z-index:2}.close:hover{background:#e8dfd8}.portrait{aspect-ratio:300/425;background:#eee7df;border-radius:18px}.profile-copy{padding:30px 20px;align-self:center}#profile-number{font-size:11px;letter-spacing:3px;color:#91877d}#profile-reading{margin:32px 0 6px;font-size:11px;letter-spacing:2px}h2{margin:0;font-size:32px;letter-spacing:2px}#profile-trait{display:inline-block;margin:22px 0 8px;padding:7px 12px;background:#e7dccb;border-radius:5px;font-size:14px}.developing{font-size:11px;color:#8f857d;margin-top:20px}.profile-nav{display:flex;align-items:center;gap:18px;margin-top:28px}.profile-nav button{width:42px;height:42px;border:1px solid #d4c9be;border-radius:50%;background:transparent;font-size:18px}.counter{font-size:10px;letter-spacing:2px}.skip{position:absolute;z-index:99;left:12px;top:-100px;background:white;padding:12px}.skip:focus{top:12px}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes breathe{50%{transform:translateY(-3px)}}body:not(.paused) h1{animation:breathe 6s ease-in-out infinite}button:focus-visible,a:focus-visible{outline:2px solid #8a7047;outline-offset:4px}
@media(max-width:600px){header{padding:30px 0 12px}h1{width:83%}.motion{right:12px;top:9px;width:29px;height:29px;font-size:11px}.studio{aspect-ratio:auto;padding:12px 18px 8px}.scene{display:none}#people{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:20px}.person{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:300/445;border-radius:14px;overflow:visible}.mobile-portrait{display:block;position:absolute;inset:0 0 14px;background-image:url(assets/characters.jpeg);background-size:512% auto;background-position:calc(var(--col)*25%) calc(var(--row)*91%);border-radius:70px 70px 14px 14px;mix-blend-mode:multiply}.person:nth-child(even){transform:translateY(22px)}.person-label{opacity:1;bottom:0;font-size:10px;background:#f8f3eacc;padding:5px 10px}.person::after{opacity:1;width:23px;height:23px;left:auto;right:6%;bottom:14%;font-size:18px}.person:hover::after{transform:translateX(-50%) scale(.75)}body:not(.paused) .mobile-portrait{animation:breathe 5s ease-in-out infinite;animation-delay:calc(var(--i)*-.4s)}.games{grid-template-columns:1fr;gap:16px;margin:44px 18px 28px}.game{min-height:112px;border-radius:21px}.game-title{font-size:20px}.game-title small{font-size:8px;margin-top:10px}.game-art{width:49%}footer{font-size:8px;padding-bottom:20px}dialog{padding:20px;width:calc(100% - 24px);max-width:400px;border-radius:24px}dialog[open]{grid-template-columns:43% 57%}.profile-copy{padding:30px 0 12px 16px}.portrait{align-self:center}h2{font-size:22px;letter-spacing:0}#profile-reading{font-size:9px;margin-top:20px;letter-spacing:1px}#profile-trait{font-size:12px;margin-top:14px;padding:6px 8px}.developing{font-size:9px;line-height:1.8}.profile-nav{gap:12px;margin-top:20px}.profile-nav button{width:36px;height:36px}.counter{font-size:9px}#profile-number{font-size:9px}.close{top:5px;right:5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
h1 img{mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}

.portrait{position:relative}.portrait canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;touch-action:none;cursor:grab}.portrait.model-ready{background:transparent}.portrait.model-ready canvas{opacity:1}.profile-status{position:absolute;inset:0;display:grid;place-items:center;padding:18px;text-align:center;color:#685d52;font-size:12px;line-height:1.8}.portrait.model-ready .profile-status{display:none}
@media(min-width:601px){body:not(.paused) .person::after{animation:breathe 4s ease-in-out infinite}}
@media(max-width:360px){.game-title{font-size:17px}.profile-copy{padding-left:10px}h2{font-size:20px}}

.live-studio{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:0;transition:opacity .6s}.studio.three-ready .live-studio{opacity:1}.studio.three-ready .scene{opacity:0}.studio.three-ready #people{z-index:2;position:absolute;inset:0;display:block}.studio.three-ready .person{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);aspect-ratio:auto;transform:none;border-radius:35%;background:transparent}.studio.three-ready .person:hover{background:radial-gradient(ellipse,#fff6ca15,transparent 60%)}.studio.three-ready .mobile-portrait{display:none}.model-progress{position:absolute;bottom:0;left:40%;width:20%;height:2px;background:#ded2ca;z-index:3;border-radius:2px;overflow:hidden}.model-progress span{display:block;width:0;height:100%;background:#9d8e7c;transition:width .3s}.studio.three-ready .person-label{bottom:0}
@media(max-width:600px){.studio.three-ready{padding:0;aspect-ratio:.36;min-height:950px}.studio.three-ready .person-label{font-size:10px;background:#faf6efa8}.studio.three-ready .person::after{right:7%;bottom:18%}.studio.three-ready .person:nth-child(even){transform:none}.studio.three-ready+.games{margin-top:24px}}
@media(max-width:600px){.studio.three-ready .person-label{bottom:-10px}.studio.three-ready .person::after{right:1%;bottom:28%}}
@media(max-width:600px){.studio.three-ready .person-label{bottom:-16px}.studio.three-ready .person::after{right:-12px}}
/* Full-screen brand opening, followed by a synchronized perspective ensemble. */
header.brand-hero{height:100svh;min-height:520px;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}.brand-hero h1{width:94%;max-width:none;margin:0;animation:none!important}.logo-stage{display:block;position:relative;width:100%;aspect-ratio:3}.logo-piece{position:absolute;top:0;height:100%;overflow:hidden;animation:logoDrop .9s cubic-bezier(.22,.85,.3,1) both;animation-delay:var(--drop-delay)}.logo-piece img{position:absolute;top:0;height:100%;max-width:none;mask-image:none;mix-blend-mode:multiply}.hero-down{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:44px;height:44px;border:1px solid #d3c6bd;border-radius:50%;text-decoration:none;font-size:22px;animation:arrive 1s 1.8s both}.motion{position:fixed;right:24px;top:24px;z-index:20;background:#f5eeebaa;backdrop-filter:blur(8px)}.studio.three-ready{aspect-ratio:1.65;min-height:580px;padding:0;background:radial-gradient(ellipse at 50% 45%,#fffaf5 0,#f5eeeb 74%)}.studio.three-ready .person-label{opacity:0;bottom:5%}.studio.three-ready .person::after{opacity:0;bottom:20%;right:auto;left:50%}.studio.three-ready .person:hover .person-label,.studio.three-ready .person:focus-visible .person-label,.studio.three-ready .person:hover::after,.studio.three-ready .person:focus-visible::after{opacity:1}.studio.three-ready .person{border-radius:35%}.games{margin-top:50px;gap:28px}.game{display:block;background:#e9dfd9;border-radius:26px;min-height:0}.game-art{display:block;width:100%;height:auto;aspect-ratio:16/9;align-self:auto}.game-title{display:block;font-size:clamp(21px,2.3vw,32px);padding:23px 26px}.game-title small{margin-top:12px}.game-title small span{font-size:24px}.game:hover{transform:translateY(-4px)}
@keyframes logoDrop{0%{transform:translateY(-110svh)}75%{transform:translateY(8%)}88%{transform:translateY(-3%)}100%{transform:translateY(0)}}
body.paused .logo-piece{animation-play-state:paused}
@media(max-width:600px){header.brand-hero{min-height:500px}.brand-hero h1{width:100%}.hero-down{bottom:32px}.motion{right:14px;top:14px;width:34px;height:34px}.studio.three-ready{aspect-ratio:.76;min-height:510px}.studio.three-ready .person-label{bottom:0;font-size:10px;background:#fff8efed;opacity:0}.studio.three-ready .person::after{left:50%;right:auto;bottom:22%;opacity:0}.games{margin:30px 18px}.game-title{padding:20px 22px;font-size:23px}.game-art{width:100%;aspect-ratio:16/9}.studio.three-ready+.games{margin-top:28px}}
@media(prefers-reduced-motion:reduce){.logo-piece{animation:none!important;transform:none}.hero-down{animation:none!important}}
.game-art,.game-catch .game-art{background:none;overflow:hidden}.game-art img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s}.game:hover .game-art img{transform:scale(1.025)}
.logo-stage.preparing{visibility:hidden}.logo-piece img{mix-blend-mode:normal}.logo-piece{background:transparent}.logo-slow .logo-piece{animation-duration:4s;animation-delay:calc(var(--drop-delay)*5)}
/* Pointer picking comes only from the visible animated mesh; buttons remain keyboard targets. */
.studio.three-ready #people,.studio.three-ready .person{pointer-events:none}.studio.three-ready{cursor:default}.studio.three-ready.surface-hover{cursor:pointer}.studio.three-ready .person:hover{background:transparent}.studio.three-ready .person:hover .person-label,.studio.three-ready .person:hover::after{opacity:0}.studio.three-ready .person:focus-visible{outline:none}.studio.three-ready .person:focus-visible .person-label{opacity:1;outline:2px solid #8a7047;outline-offset:3px}.studio.three-ready .person:focus-visible::after{opacity:1}.surface-label{position:absolute;z-index:40;pointer-events:none;background:#fffaf2f2;color:#26211c;font-size:13px;padding:8px 13px;border-radius:30px;box-shadow:0 3px 15px #3d2b1715;white-space:nowrap}.surface-label[hidden]{display:none}

/* Reserve the final stage size from the first paint; never flash the reference. */
.studio.three-pending{aspect-ratio:1.65;min-height:580px;padding:0;background:radial-gradient(ellipse at 50% 45%,#fffaf5 0,#f5eeeb 74%)}
.studio:not(.three-fallback) .scene{display:none}
.studio.three-pending #people{visibility:hidden;pointer-events:none}
.studio.three-pending .model-progress{bottom:36px}
@media(max-width:600px){.studio.three-pending{aspect-ratio:.76;min-height:510px}.studio.three-pending+.games{margin-top:28px}}

/* Quiet beta invitation after the game cards. */
.beta-note{margin:0 3.6% 32px;padding:32px;border-top:1px solid #d9cbc2;border-bottom:1px solid #d9cbc2;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}.beta-tag{font-size:10px;letter-spacing:.2em;color:#76655b}.beta-note h2{font-size:23px;letter-spacing:.02em;margin:10px 0}.beta-note p{font-size:14px;line-height:2;max-width:650px;margin:0}.feedback-cta{display:block;min-width:195px;border:1px solid #948174;border-radius:100px;padding:16px 25px;text-decoration:none;font-size:14px;font-weight:700}.feedback-cta small{display:block;margin-top:6px;font-size:10px;font-weight:400;letter-spacing:.08em;color:#76655b}.feedback-cta:hover{background:#e9dfd9}.update-notes{margin:0 5.6% 54px;max-width:850px}.update-notes h2{font-size:17px;letter-spacing:.08em}.update-intro{font-size:11px;color:#76655b}.update-notes ul{list-style:none;padding:0;margin:20px 0}.update-notes li{display:grid;grid-template-columns:130px 1fr;gap:20px;border-bottom:1px solid #e1d6cf;padding:16px 0}.update-notes li span{font-size:11px;color:#76655b}.update-notes li p{font-size:13px;line-height:1.9;margin:0}@media(max-width:600px){.beta-note{margin:0 18px 28px;padding:26px 4px;grid-template-columns:1fr;gap:20px}.beta-note h2{font-size:21px}.feedback-cta{width:fit-content}.update-notes{margin:0 22px 40px}.update-notes li{grid-template-columns:1fr;gap:6px}}
