*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;max-width:100%;overflow-x:hidden;background:#0d0d12;color:#f7f7fb;font-family:Inter,"Noto Sans JP",system-ui,-apple-system,sans-serif;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}body{min-height:100dvh;background:radial-gradient(circle at 50% 0,#24203b 0,#111119 36%,#09090d 100%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{width:100%;max-width:620px;margin:auto;min-height:100dvh;padding-bottom:88px;overflow-x:clip}main{width:100%;min-width:0}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:10;background:linear-gradient(#0d0d12ee,#0d0d1200);backdrop-filter:blur(14px)}.brand{font-weight:800;letter-spacing:.14em}.brand-mark{display:inline-grid;place-items:center;width:29px;height:29px;border:1px solid #8f83ff;border-radius:9px;margin-right:8px;background:#7668ff1c;color:#b4adff}.nearby-mini{font-size:12px;padding:9px 12px;background:#ffffff0c;border:1px solid #ffffff18;border-radius:999px}.twin-home{padding:4px 18px 24px}.twin-orb{width:150px;height:150px;margin:12px auto 10px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#897dff 0,#5d50c8 24%,#272341 58%,transparent 70%);filter:drop-shadow(0 0 30px #7a6dff55);animation:float 5s ease-in-out infinite}.orb-core{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:#11101a99;border:1px solid #ffffff38;box-shadow:inset 0 0 30px #ffffff15}.twin-meta{text-align:center;margin-bottom:18px}.twin-meta span{font-weight:800;letter-spacing:.12em}.twin-meta small{display:block;color:#8e87b8;font-size:10px;margin-top:5px}.twin-chat{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow:auto;padding:4px 0}.bubble{max-width:84%;padding:13px 15px;border-radius:18px;line-height:1.55;font-size:14px}.bubble.twin{align-self:flex-start;background:#242131;border:1px solid #ffffff10;border-bottom-left-radius:5px}.bubble.me{align-self:flex-end;background:#7163ec;border-bottom-right-radius:5px}.bubble small{color:#b8b3d0}.inline-action{align-self:flex-start;background:#fff;color:#111;padding:9px 14px;border-radius:999px;font-size:13px;font-weight:700}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.quick-actions button,.quick-actions a{border:1px solid #ffffff18;background:#181722;color:#fff;padding:14px 10px;border-radius:15px;text-align:center;font-size:12px;cursor:pointer}.quick-actions button{background:linear-gradient(135deg,#7769f2,#9c5bec);border:0}.chat-form{display:flex;gap:8px;background:#181720;border:1px solid #ffffff18;padding:7px;border-radius:18px;position:sticky;bottom:84px}.chat-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#fff;padding:10px}.chat-form button{width:42px;height:42px;border-radius:13px;border:0;background:#fff;color:#111;font-size:20px}.now-card{margin-top:16px;border:1px solid #ffffff13;background:#ffffff08;padding:16px;border-radius:18px;display:flex;align-items:center;justify-content:space-between}.now-card strong{font-size:14px}.now-card p{font-size:11px;color:#aaa6ba;margin:4px 0 0}.now-card button{border:0;background:#2b2935;color:#ccc;border-radius:999px;padding:10px 15px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(620px,100%);height:74px;padding-bottom:max(4px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#111117ed;border-top:1px solid #ffffff10;backdrop-filter:blur(20px);z-index:30}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:9px;color:#6f6b7d;gap:5px}.bottom-nav a span{font-size:20px}.bottom-nav a.active{color:#a89cff}.page-head{padding:10px 18px 18px;display:flex;align-items:end;justify-content:space-between}.page-head small{font-size:9px;letter-spacing:.2em;color:#8d86af}.page-head h1{font-size:27px;margin:4px 0 0}.filter-btn{background:#ffffff0d;color:#ddd;border:1px solid #ffffff18;border-radius:999px;padding:9px 12px}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px}.profile-card{aspect-ratio:.78}.profile-photo{height:100%;background-position:center;background-size:cover;background-color:#222;position:relative}.profile-photo:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#09090ddb)}.card-top{position:absolute;z-index:2;top:8px;left:8px}.now-badge{font-size:9px;padding:5px 7px;border-radius:999px;background:#7a68f0cc;backdrop-filter:blur(8px)}.card-bottom{position:absolute;z-index:2;left:10px;right:10px;bottom:10px}.card-bottom strong{font-size:17px}.card-bottom span{font-size:12px;margin-left:5px}.card-bottom p{font-size:10px;margin:3px 0;color:#ddd}.chips{display:flex;gap:4px;flex-wrap:wrap}.chips span{margin:0;font-size:8px;background:#ffffff1c;padding:4px 6px;border-radius:999px}.empty{grid-column:1/-1;text-align:center;padding:70px 25px;color:#888}.auth-page{padding:60px 24px}.auth-logo{text-align:center;margin-bottom:42px}.auth-logo>span{display:grid;place-items:center;width:74px;height:74px;margin:auto;border-radius:25px;background:linear-gradient(135deg,#8b7cff,#6255d9);font-size:27px;box-shadow:0 18px 45px #6557db44}.auth-logo h1{letter-spacing:.18em;margin:15px 0 5px}.auth-logo p{font-size:12px;color:#918da4}.auth-form{display:grid;gap:14px}.auth-form label{font-size:11px;color:#aaa6b8}.auth-form input{display:block;width:100%;min-width:0;max-width:100%;margin-top:6px;padding:14px;border-radius:13px;border:1px solid #ffffff18;background:#17171f;color:#fff;outline:none;font-size:16px;line-height:1.35}.auth-form button{padding:15px;border:0;border-radius:14px;background:linear-gradient(135deg,#786af1,#9a5de9);color:#fff;font-weight:800}.auth-link{display:block;text-align:center;margin-top:18px;font-size:12px;color:#aaa}.alert{background:#e85b7b22;border:1px solid #e85b7b66;padding:12px;border-radius:12px;margin-bottom:16px;font-size:12px}@keyframes float{50%{transform:translateY(-7px)}}@media(min-width:700px){.app-shell{border-left:1px solid #ffffff0b;border-right:1px solid #ffffff0b}.profile-grid{grid-template-columns:repeat(3,1fr)}}
.profile-nudge{display:block;margin:0 0 12px;padding:11px 13px;border:1px solid #9185ff44;background:#7b6df31a;border-radius:13px;font-size:12px;text-align:center;color:#c8c2ff}.mini-picks{margin:4px 0 18px}.section-label{display:flex;justify-content:space-between;align-items:center;margin:0 2px 8px;font-size:10px;letter-spacing:.12em;color:#9b95b9}.section-label a{letter-spacing:0;color:#c8c4dc}.mini-pick-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-pick-row a{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;background:#ffffff09;border:1px solid #ffffff0e;border-radius:14px;padding:8px;min-width:0}.mini-pick-row a>div{grid-row:1/3;width:38px;height:38px;border-radius:12px;background-size:cover;background-position:center}.mini-pick-row strong{font-size:11px;overflow:hidden;text-overflow:ellipsis}.mini-pick-row small{font-size:9px;color:#968ef0}.settings-page{padding:0 18px 28px}.notice{padding:12px 14px;background:#786af11b;border:1px solid #786af14d;border-radius:13px;font-size:12px;margin-bottom:14px}.profile-form{display:grid;gap:14px}.profile-form label{font-size:11px;color:#aaa6b8}.profile-form input,.profile-form select,.profile-form textarea{display:block;width:100%;min-width:0;max-width:100%;margin-top:6px;padding:13px;border-radius:13px;border:1px solid #ffffff18;background:#17171f;color:#fff;outline:none;font-size:16px;line-height:1.35}.profile-form input[type="date"]{width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}.profile-form input[type="date"]::-webkit-date-and-time-value{text-align:left}.settings-page,.profile-form,.profile-form label{min-width:0;max-width:100%}.profile-form small{display:block;margin-top:5px;color:#716d7e}.profile-form button{padding:15px;border:0;border-radius:14px;background:linear-gradient(135deg,#786af1,#9a5de9);color:#fff;font-weight:800}.photo-editor{display:flex;align-items:center;gap:14px}.photo-editor img,.photo-placeholder{width:92px;height:92px;border-radius:26px;object-fit:cover;background:#1b1a23;display:grid;place-items:center;color:#6f6a82}.photo-editor label{flex:1}.check-line{display:flex!important;align-items:center;gap:9px}.check-line input{width:auto!important;margin:0!important}.fineprint{font-size:10px;color:#747080;line-height:1.6}.near-hint,.pick-intro{font-size:10px;color:#888397;padding:0 18px 12px;margin:0}.picks-page{padding-bottom:20px}.pick-list{display:grid;gap:10px;padding:0 14px}.pick-card{display:grid;grid-template-columns:96px 1fr;min-height:112px;border:1px solid #ffffff10;background:#15141c;border-radius:18px;overflow:hidden}.pick-photo{background-size:cover;background-position:center}.pick-copy{padding:13px;position:relative}.pick-copy strong{font-size:17px}.pick-copy>div span{font-size:12px;color:#aaa}.pick-copy b{position:absolute;right:13px;top:13px;color:#a79cff}.pick-copy p{font-size:11px;color:#cbc7d5;margin:8px 0 5px}.pick-copy small{font-size:9px;color:#787486}.profile-detail{padding-bottom:30px}.hero-photo{height:54vh;max-height:520px;background-size:cover;background-position:center;position:relative}.hero-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0d0d12)}.back-pill{position:absolute;z-index:3;left:14px;top:10px;padding:8px 11px;background:#0d0d1299;border:1px solid #ffffff19;border-radius:999px;font-size:12px}.detail-now{position:absolute;z-index:3;right:14px;top:10px}.detail-body{padding:0 18px;position:relative;z-index:2;margin-top:-30px}.detail-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.detail-title h1{margin:0;font-size:30px}.detail-title h1 span{font-size:16px;font-weight:500;color:#aaa}.muted{font-size:11px;color:#888}.facts{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.facts span{font-size:10px;background:#ffffff0d;border:1px solid #ffffff10;border-radius:999px;padding:7px 9px}.info-block{margin-top:18px}.info-block small{font-size:9px;letter-spacing:.16em;color:#837da0}.info-block p{font-size:13px;line-height:1.7}.profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.profile-actions form{margin:0}.profile-actions button{width:100%;border:0;border-radius:14px;padding:14px;background:linear-gradient(135deg,#786af1,#9a5de9);color:white;font-weight:800}.profile-actions button.secondary{background:#ffffff0d;border:1px solid #ffffff18}

.logout-form{margin:28px 0 10px;padding-top:20px;border-top:1px solid #ffffff10}.logout-form input[type="hidden"]{display:none}.logout-form button{width:100%;padding:14px;border-radius:14px;border:1px solid #ffffff18;background:#ffffff08;color:#b9b5c5;font-size:13px;font-weight:700}.logout-form button:active{background:#ffffff10;color:#fff}

/* v0.2.4 profile / private album */
.header-text-link{font-size:11px;color:#c8c2ff;border:1px solid #ffffff18;background:#ffffff08;padding:8px 11px;border-radius:999px;white-space:nowrap}.photo-manage-banner{display:flex;flex-direction:column;gap:3px;margin:0 0 14px;padding:14px 15px;border-radius:16px;border:1px solid #8478ff42;background:linear-gradient(135deg,#7568f21c,#9b5de91a)}.photo-manage-banner span{font-size:8px;letter-spacing:.18em;color:#9289cf}.photo-manage-banner strong{font-size:13px}.profile-location{margin:4px 0 0}.verify-chips{justify-content:flex-end}.verified-chip{background:#5cbd8b22!important;border:1px solid #5cbd8b45;color:#bff2d5}.section-kicker{font-size:9px;letter-spacing:.17em;color:#827c9e;margin-bottom:8px}.profile-gallery-section{margin-top:18px}.profile-photo-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.profile-photo-strip::-webkit-scrollbar{display:none}.profile-photo-thumb{flex:0 0 88px;width:88px;height:112px;border:0;border-radius:15px;background-position:center;background-size:cover;background-color:#1b1a22}.twin-analysis-card{margin-top:20px;padding:16px;border-radius:20px;background:linear-gradient(145deg,#1b1928,#13121a);border:1px solid #887bff35;box-shadow:inset 0 1px #ffffff09}.twin-analysis-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.twin-analysis-head small{display:block;color:#8e84c4;font-size:8px;letter-spacing:.15em}.twin-analysis-head strong{display:block;margin-top:5px;font-size:15px}.twin-analysis-head>b{font-size:31px;color:#a79cff;line-height:1}.vibe-bars{display:grid;gap:8px;margin-top:15px}.vibe-row{display:grid;grid-template-columns:36px 1fr 24px;gap:8px;align-items:center;font-size:9px;color:#aaa5b8}.vibe-row i{display:block;height:5px;background:#ffffff0d;border-radius:99px;overflow:hidden}.vibe-row i em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7769f2,#b05bea)}.vibe-row b{font-size:9px;text-align:right}.twin-comment{margin:14px 0 0!important;padding-top:12px;border-top:1px solid #ffffff0c;color:#c8c3d7;font-size:11px!important;line-height:1.65!important}.interest-tags{display:flex;gap:6px;flex-wrap:wrap}.interest-tags span{font-size:10px;padding:7px 9px;border-radius:999px;background:#ffffff0c;border:1px solid #ffffff10}.private-album-card{margin-top:20px;padding:17px;border-radius:20px;border:1px solid #ac64ea35;background:linear-gradient(145deg,#201727,#15131a)}.private-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.private-title-row small{font-size:8px;letter-spacing:.17em;color:#af75dc}.private-title-row h2{margin:5px 0 0;font-size:17px}.private-title-row>span{font-size:8px;color:#c6a6de;border:1px solid #b86cf547;padding:5px 7px;border-radius:999px}.private-album-card>p{font-size:11px;color:#a9a4b3;line-height:1.65}.private-status.good{color:#a9e9c5}.private-request-button,.locked-button{width:100%;margin-top:8px;padding:13px;border-radius:14px;border:0;background:linear-gradient(135deg,#8c64ee,#bb59dc);color:#fff;font-weight:800}.locked-button{background:#ffffff0a;color:#77727e;border:1px solid #ffffff0e}.private-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:12px}.private-photo-cell{aspect-ratio:.78;border:0;border-radius:11px;background-position:center;background-size:cover;position:relative;overflow:hidden}.private-photo-cell span{position:absolute;left:4px;bottom:4px;font-size:6px;background:#0d0d12b8;padding:3px 4px;border-radius:5px}.private-note{font-size:8px!important;color:#6f6a79!important;margin-bottom:0}.verify-card{margin-top:20px;padding:15px;border-radius:18px;border:1px solid #ffffff10;background:#ffffff06}.verify-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.verify-list>div{text-align:center;padding:11px 5px;border-radius:13px;background:#0d0d1266}.verify-list span{display:block;font-size:8px;letter-spacing:.13em;color:#8d879d}.verify-list b{display:block;margin:6px 0 4px;color:#8ee0b2;font-size:18px}.verify-list b.off{color:#5d5965}.verify-list small{display:block;font-size:7px;color:#77717f}.photo-lightbox{position:fixed;z-index:100;inset:0;background:#07070bed;display:grid;place-items:center;padding:20px}.photo-lightbox[hidden]{display:none}.photo-lightbox img{max-width:100%;max-height:86vh;border-radius:14px;object-fit:contain}.photo-lightbox-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:16px;width:42px;height:42px;border-radius:50%;border:1px solid #ffffff24;background:#181820cc;color:#fff;font-size:24px}.photo-manage-page{padding-bottom:95px}.manage-card{margin:0 0 14px;padding:16px;border-radius:19px;background:#15141c;border:1px solid #ffffff0e}.manage-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.manage-heading small{font-size:8px;letter-spacing:.16em;color:#847e9b}.manage-heading h2{font-size:16px;margin:4px 0 0}.manage-heading>span{font-size:11px;color:#918aab;background:#ffffff09;border-radius:999px;padding:5px 8px}.photo-upload-form{display:grid;gap:12px}.photo-upload-form>label{font-size:10px;color:#aaa5b7}.photo-upload-form input[type=file]{display:block;width:100%;margin-top:6px;color:#bdb8c8;font-size:12px}.visibility-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.visibility-picker label{display:block;position:relative}.visibility-picker input{position:absolute;opacity:0;pointer-events:none}.visibility-picker span{display:block;height:100%;padding:12px;border:1px solid #ffffff12;background:#ffffff06;border-radius:13px}.visibility-picker input:checked+span{border-color:#887bff88;background:#796af322}.visibility-picker b{display:block;font-size:10px}.visibility-picker small{display:block;margin-top:4px;font-size:8px;line-height:1.4;color:#7e798a}.photo-upload-form>button{padding:13px;border:0;border-radius:13px;background:linear-gradient(135deg,#786af1,#9a5de9);color:#fff;font-weight:800}.manage-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.manage-photo{position:relative;overflow:hidden;border-radius:13px;background:#0e0e13}.manage-photo img{display:block;width:100%;aspect-ratio:.78;object-fit:cover}.manage-photo form{position:absolute;right:5px;bottom:5px}.manage-photo form button{border:0;background:#0a0a0dc9;color:#ddd;font-size:8px;padding:6px 7px;border-radius:999px}.private-photo-label{position:absolute;left:5px;top:5px;font-size:6px;letter-spacing:.1em;background:#7d58c9d9;padding:4px 5px;border-radius:6px}.manage-empty{padding:5px 0 2px;margin:0}.private-request-list{display:grid;gap:11px}.private-request-item{padding:11px;border-radius:14px;background:#ffffff05;border:1px solid #ffffff0b}.request-user{display:flex;align-items:center;gap:9px}.request-user img,.access-list img{width:42px;height:42px;border-radius:13px;object-fit:cover}.request-user strong,.access-list strong{font-size:12px}.request-user small,.access-list small{display:block;margin-top:3px;font-size:8px;color:#817c8c}.private-request-item form{margin-top:10px}.private-request-item select{width:100%;padding:10px;background:#111119;color:#ddd;border:1px solid #ffffff12;border-radius:10px;font-size:12px}.request-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.request-actions button{border:0;border-radius:10px;padding:10px;background:#786af1;color:#fff;font-size:11px;font-weight:700}.request-actions .deny{background:#ffffff08;color:#9c97a5;border:1px solid #ffffff0c}.access-list{display:grid;gap:8px}.access-list article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;padding:9px;background:#ffffff04;border-radius:13px}.access-list form button{border:1px solid #ffffff12;background:#ffffff06;color:#a6a1ad;border-radius:999px;padding:7px 9px;font-size:9px}

/* v0.2.5 — TWIN guided UX / TWIN MEMORY */
.twin-guide-card{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start;margin:0 0 14px;padding:13px;border:1px solid #8978ff32;background:linear-gradient(145deg,#191725,#12121a);border-radius:17px}.twin-guide-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c1b7ff,#7866ef 48%,#2a234a);box-shadow:0 0 22px #7663ef4d;color:#fff;font-weight:900}.twin-guide-avatar.mini{width:34px;height:34px;font-size:12px;flex:0 0 34px}.twin-guide-card small{font-size:8px;letter-spacing:.16em;color:#9a8ff1}.twin-guide-card p{margin:4px 0 0;font-size:11px;line-height:1.65;color:#c5c0d0}.twin-explain-link,.twin-inline-help,.tiny-help{border:0;background:transparent;color:#968bf1;font-size:10px;padding:4px 0;text-decoration:none}.twin-explain-link{display:block;margin:-7px auto 12px}.twin-inline-help{margin:-5px 0 12px}.tiny-help{margin-left:5px;font-size:12px;vertical-align:middle}.twin-help-sheet{position:fixed;z-index:300;inset:0}.twin-help-sheet[hidden]{display:none}.twin-help-backdrop{position:absolute;inset:0;background:#050509a8;backdrop-filter:blur(4px)}.twin-help-panel{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:48px 1fr;gap:12px;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#171620;border-top:1px solid #ffffff14;box-shadow:0 -20px 60px #0008}.twin-help-panel .twin-help-avatar{grid-row:1 / span 2;width:48px;height:48px}.twin-help-panel small{font-size:9px;letter-spacing:.17em;color:#9b90ef}.twin-help-panel p{margin:5px 0 14px;color:#d0cad9;font-size:12px;line-height:1.7}.twin-help-panel>button{grid-column:2;border:0;border-radius:12px;padding:11px;background:linear-gradient(135deg,#7769f2,#a65adf);color:#fff;font-weight:800}.main-photo-card a{position:absolute;right:5px;bottom:5px;padding:6px 8px;border-radius:999px;background:#0a0a0dc9;color:#ddd;font-size:8px}.public-label{background:#536bd7d9}.twin-memory-card{border-color:#7d6dff39;background:linear-gradient(145deg,#181728,#13121b)}.twin-memory-explain{display:flex;gap:10px;align-items:flex-start;margin:-2px 0 8px;padding:11px;border-radius:13px;background:#786af115}.twin-memory-explain p{margin:0;color:#c5bfd2;font-size:10px;line-height:1.65}.memory-upload-form{display:grid;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid #ffffff0c}.memory-upload-form label{font-size:10px;color:#aaa5b7}.memory-upload-form input{display:block;width:100%;margin-top:6px;font-size:12px;color:#bbb6c7}.memory-upload-form button{border:0;border-radius:12px;padding:12px;background:linear-gradient(135deg,#7669ef,#a359dd);color:#fff;font-weight:800}.memory-label{background:#6257cbd9}.plan-note{margin:10px 0 0;font-size:8px;color:#777184;line-height:1.5}.private-video-card{opacity:.92}.private-video-card .locked-button{margin-top:8px}.photo-upload-form button:disabled,.memory-upload-form button:disabled{opacity:.45}

/* v0.2.7 — persistent login */
.dev-plan-badge{width:max-content;max-width:100%;margin:-8px auto 14px;padding:6px 10px;border-radius:999px;border:1px solid #c894ff55;background:linear-gradient(135deg,#745cf033,#c05bea25);color:#d7c6ff;font-size:9px;font-weight:800;letter-spacing:.08em;box-shadow:0 0 22px #8d67ff1f}
.plan-note.dev{color:#cdbaff}


/* v0.2.7 persistent login */
.auth-stay-note{margin:10px 0 4px;color:var(--muted,#9a9aaa);font-size:.82rem;line-height:1.55;text-align:center}
.logout-all-form{margin-top:8px}
.logout-all-form button{background:transparent!important;border:1px solid rgba(255,255,255,.14)!important;color:#aaa!important}


/* v0.2.8 — TWIN DAILY */
.home-daily-card{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;margin:14px 0;padding:13px 14px;border-radius:18px;border:1px solid #8c7cff33;background:linear-gradient(145deg,#1a1828,#121219);box-shadow:0 12px 30px #0003}
.home-daily-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c8bfff,#7465ed 52%,#2b2549);box-shadow:0 0 20px #7567ef42;font-weight:900}
.home-daily-copy{min-width:0}.home-daily-copy small{display:block;font-size:8px;letter-spacing:.16em;color:#9d91f4}.home-daily-copy strong{display:block;margin-top:4px;font-size:12px;line-height:1.45}.home-daily-copy span{display:block;margin-top:4px;font-size:8px;color:#898397}.home-daily-score{text-align:right}.home-daily-score b{display:block;color:#b3a7ff;font-size:17px}.home-daily-score span{display:block;margin-top:2px;font-size:7px;color:#756f82}
.daily-page{padding:0 18px 100px}.daily-head{padding-left:0;padding-right:0}.daily-hero{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start;padding:15px;border-radius:20px;border:1px solid #8978ff32;background:linear-gradient(145deg,#1a1829,#111118)}.daily-hero .twin-guide-avatar{width:48px;height:48px}.daily-hero small{font-size:8px;letter-spacing:.15em;color:#9b8ff2}.daily-hero h2{margin:4px 0 5px;font-size:17px}.daily-hero p{margin:0;color:#bbb5c7;font-size:10px;line-height:1.7}
.understanding-card{margin:12px 0;padding:13px 14px;border-radius:17px;background:#ffffff06;border:1px solid #ffffff0e}.understanding-top{display:flex;justify-content:space-between;align-items:center}.understanding-top span{font-size:8px;letter-spacing:.14em;color:#8e87a3}.understanding-top strong{font-size:17px;color:#b0a5ff}.understanding-track{height:6px;margin:9px 0 8px;border-radius:99px;background:#ffffff0b;overflow:hidden}.understanding-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7869f2,#b25ae1);box-shadow:0 0 18px #9c70ff66}.understanding-card>small{display:block;font-size:8px;line-height:1.55;color:#716b7e}
.daily-feedback{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start;margin:12px 0;padding:11px 12px;border-radius:15px;background:#786af112;border:1px solid #786af12c}.daily-feedback>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#786af12b;color:#c9c2ff;font-weight:900}.daily-feedback p{margin:0;font-size:10px;line-height:1.7;color:#cdc8d6}.daily-error{margin:12px 0;padding:11px;border-radius:12px;background:#7c29352b;border:1px solid #ff6f8138;color:#ffb9c1;font-size:10px}
.daily-question-card{margin:13px 0;padding:18px 15px;border-radius:22px;background:linear-gradient(160deg,#1d1b29,#13131a);border:1px solid #ffffff10;box-shadow:0 18px 45px #0003}.daily-question-card>small{font-size:8px;letter-spacing:.17em;color:#897ff0}.daily-question-card h2{margin:7px 0 16px;font-size:18px;line-height:1.55}.daily-question-card>p{margin:0;font-size:11px;line-height:1.7;color:#b8b2c3}
.daily-scale{display:grid;gap:7px}.daily-scale label{display:block;position:relative}.daily-scale input{position:absolute;opacity:0;pointer-events:none}.daily-scale span{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:9px;padding:11px 12px;border-radius:13px;border:1px solid #ffffff0e;background:#ffffff05;transition:.15s}.daily-scale b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#ffffff08;font-size:11px;color:#a59db7}.daily-scale em{font-style:normal;font-size:11px;color:#c0bac8}.daily-scale input:checked+span{border-color:#8b7cff91;background:#786af122;transform:scale(.995)}.daily-scale input:checked+span b{background:#786af1;color:#fff}.daily-answer-form>button{width:100%;margin-top:10px;padding:12px;border:0;border-radius:13px;background:linear-gradient(135deg,#786af1,#a45bdf);color:#fff;font-weight:800;font-size:12px}.daily-answer-form.is-submitting{opacity:.68;pointer-events:none}
.daily-traits{margin-top:17px}.daily-traits article{margin-top:8px;padding:12px 13px;border-radius:14px;border:1px solid #ffffff0b;background:#ffffff04}.daily-traits article small{font-size:8px;letter-spacing:.12em;color:#8981a0}.daily-traits article p{margin:5px 0 3px;font-size:11px;line-height:1.55;color:#d2cdd8}.daily-traits article span{font-size:7px;color:#6f687b}.daily-disclaimer{margin:10px 2px 0;font-size:8px;line-height:1.6;color:#6f6978}
@media (max-width:380px){.home-daily-card{grid-template-columns:40px 1fr auto;padding:12px 11px}.home-daily-icon{width:40px;height:40px}.home-daily-copy strong{font-size:11px}.daily-question-card h2{font-size:17px}}

/* v0.2.9 — install landing page / PWA install UX */
.install-lp{position:relative;overflow:hidden;padding:4px 18px 44px;min-height:calc(100dvh - 66px)}.install-lp-glow{position:absolute;z-index:-1;top:-130px;left:50%;width:420px;height:420px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,#7d68f943 0,#755fea18 40%,transparent 70%);filter:blur(6px)}.install-lp-hero{text-align:center;padding:20px 0 10px}.install-twin-orb{display:grid;place-items:center;width:112px;height:112px;margin:4px auto 16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d6cfff 0,#8e7cff 32%,#5448ae 58%,#1a172a 72%);box-shadow:0 0 54px #7665ff66,0 18px 50px #0008}.install-twin-orb span{font-size:36px;font-weight:900;text-shadow:0 0 18px #fff8}.install-eyebrow{margin:0;font-size:8px;letter-spacing:.23em;color:#9388ec}.install-lp h1{margin:9px 0 11px;font-size:31px;line-height:1.3;letter-spacing:-.04em}.install-lead{margin:0 auto 23px;color:#aaa4b7;font-size:11px;line-height:1.8}.install-primary{width:100%;max-width:430px;display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;margin:0 auto;border:0;border-radius:18px;padding:13px 16px;text-align:left;color:#fff;background:linear-gradient(135deg,#7467f3,#a658dc);box-shadow:0 12px 35px #6f5fed40;font-weight:inherit}.install-primary:active{transform:scale(.985)}.install-primary[disabled]{opacity:.58}.install-primary-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ffffff18;font-size:22px;font-weight:900}.install-primary b{display:block;font-size:14px}.install-primary small{display:block;margin-top:3px;color:#e3ddf1;font-size:8px;font-weight:500}.install-status{min-height:20px;margin:8px auto 0;color:#938ca1;font-size:9px;line-height:1.5}.install-status.success{color:#9ee2b5}.install-status.warn{color:#f0c987}.install-auth-links{display:flex;justify-content:center;gap:18px;margin-top:8px}.install-auth-links a{font-size:10px;color:#bbb5ca}.install-auth-links a:first-child{color:#a99eff}.install-twin-message{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start;margin:15px 0;padding:13px;border-radius:17px;border:1px solid #8173f132;background:#ffffff04}.install-twin-message small{font-size:8px;letter-spacing:.15em;color:#988cf2}.install-twin-message p{margin:4px 0 0;font-size:10px;line-height:1.65;color:#bdb7c8}.install-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.install-feature-grid article{min-height:126px;padding:13px;border-radius:17px;background:#ffffff05;border:1px solid #ffffff0b}.install-feature-grid article>span{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#786af11c;color:#aa9fff}.install-feature-grid strong{display:block;margin-top:10px;font-size:10px;letter-spacing:.06em}.install-feature-grid p{margin:5px 0 0;color:#8f899a;font-size:8px;line-height:1.6}.install-lp-note{text-align:center;margin:18px 0 0;color:#5f5a68;font-size:7px}.install-guide-sheet{position:fixed;z-index:400;inset:0}.install-guide-sheet[hidden]{display:none}.install-guide-backdrop{position:absolute;inset:0;background:#050509ba;backdrop-filter:blur(5px)}.install-guide-panel{position:absolute;left:0;right:0;bottom:0;max-width:620px;margin:auto;padding:9px 18px calc(18px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#181720;border-top:1px solid #ffffff15;box-shadow:0 -24px 70px #0009}.install-guide-handle{width:38px;height:4px;margin:0 auto 15px;border-radius:99px;background:#ffffff24}.install-guide-twin{display:flex;gap:10px;align-items:center}.install-guide-twin small{font-size:8px;letter-spacing:.15em;color:#998df1}.install-guide-twin h2{margin:3px 0 0;font-size:16px}.ios-install-steps{list-style:none;padding:0;margin:17px 0;display:grid;gap:9px}.ios-install-steps li{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:11px;border-radius:14px;background:#ffffff05;border:1px solid #ffffff0b}.ios-install-steps li>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#7468ef20;color:#b7adff;font-size:21px;font-weight:800}.ios-share-symbol{font-size:25px!important}.ios-install-steps b{display:block;font-size:11px}.ios-install-steps small{display:block;margin-top:3px;color:#85808f;font-size:8px;line-height:1.4}.install-browser-hint{margin:0 2px 13px;color:#928c9d;font-size:9px;line-height:1.6}.install-guide-close{width:100%;border:0;border-radius:13px;padding:12px;background:linear-gradient(135deg,#7468ef,#a75ade);color:#fff;font-weight:800}.install-primary.is-installed{background:linear-gradient(135deg,#315d50,#477e67)}
@media(max-width:380px){.install-lp h1{font-size:27px}.install-feature-grid article{min-height:118px;padding:11px}.install-primary{grid-template-columns:38px 1fr;padding:11px 13px}.install-primary-icon{width:38px;height:38px}}


/* v0.2.10 — TWIN DAILY no-reload flow */
.daily-question-card{transform:translateZ(0);transition:opacity .14s ease,transform .18s ease}
.daily-question-card.is-answering .daily-scale{pointer-events:none}
.daily-question-card.is-changing{opacity:0;transform:translateX(-12px) scale(.992)}
.daily-question-card.is-entering{animation:dailyQuestionIn .22s ease both}
.daily-inline-feedback{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;margin:-4px 0 12px;padding:9px 10px;border-radius:13px;background:#786af116;border:1px solid #786af132;opacity:0;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease}
.daily-inline-feedback[hidden]{display:none}.daily-inline-feedback.is-visible{opacity:1;transform:none}.daily-inline-feedback>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#786af12b;color:#c9c2ff;font-size:10px;font-weight:900}.daily-inline-feedback p{margin:0;color:#d0cbd8;font-size:9px;line-height:1.55}.daily-inline-feedback.is-error{background:#7c29352b;border-color:#ff6f8138}.daily-inline-feedback.is-error p{color:#ffb9c1}
.daily-question-card.is-complete{padding-top:20px;padding-bottom:20px}.daily-question-card [data-daily-complete-text]{margin:6px 0 0;color:#a9a3b4;font-size:10px;line-height:1.7}
@keyframes dailyQuestionIn{from{opacity:0;transform:translateX(12px) scale(.992)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.daily-question-card,.daily-inline-feedback{transition:none!important}.daily-question-card.is-entering{animation:none!important}}


/* v0.2.11 — FIRST MEMORY focused onboarding */
.daily-onboarding{min-height:100dvh;padding:0 18px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:radial-gradient(circle at 50% -8%,#332b5b 0,#171522 30%,transparent 62%)}
.starter-top{display:flex;align-items:center;justify-content:space-between;height:60px;padding-top:env(safe-area-inset-top)}.starter-brand{font-weight:800;letter-spacing:.14em;font-size:13px}.starter-skip{padding:8px 4px;color:#8f8999;font-size:10px}.starter-skip:active{color:#c8c2d1}
.starter-intro{text-align:center;padding:4px 2px 5px}.starter-orb{width:88px;height:88px;margin:2px auto 12px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#e0dbff 0,#9b8cff 29%,#6154c7 53%,#24203d 72%);box-shadow:0 0 44px #786af166,0 18px 45px #0006}.starter-orb span{font-size:29px;font-weight:900;text-shadow:0 0 16px #fff9}.starter-intro>small{font-size:8px;letter-spacing:.2em;color:#9c90f0}.starter-intro h1{margin:7px auto 7px;max-width:390px;font-size:20px;line-height:1.4;letter-spacing:-.025em}.starter-intro p{max-width:440px;margin:0 auto;color:#928c9d;font-size:9px;line-height:1.65}
.starter-progress{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin:12px 2px 5px}.starter-progress i{height:4px;border-radius:99px;background:#ffffff0d;transition:background .2s ease,transform .2s ease}.starter-progress i.is-done{background:#796cf0}.starter-progress i.is-current{background:#b3a9ff;transform:scaleY(1.35);box-shadow:0 0 10px #8c7dff55}
.starter-question-card{margin-top:12px;margin-bottom:7px;padding:17px 15px;background:linear-gradient(160deg,#1f1c2c,#121219);box-shadow:0 18px 55px #0005}.starter-question-card h2{margin-bottom:13px;font-size:18px}.daily-onboarding .daily-scale{gap:6px}.daily-onboarding .daily-scale span{padding:9px 11px}.daily-onboarding .daily-scale b{width:26px;height:26px}.daily-onboarding .daily-answer-form>button{margin-top:8px;padding:10px;background:#ffffff08;border:1px solid #ffffff10;color:#8f899a}.starter-skip-note{text-align:center;margin:5px 6px 0;color:#5f5968;font-size:7px;line-height:1.55}
.daily-onboarding.is-created{display:block;padding:0}.starter-created{min-height:100dvh;padding:calc(66px + env(safe-area-inset-top)) 24px calc(34px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 28%,#332964 0,#171522 34%,#09090d 72%)}.starter-created-orb{width:132px;height:132px;margin-bottom:22px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ebe7ff 0,#a998ff 28%,#6455cf 53%,#211d38 73%);box-shadow:0 0 80px #786af184,0 25px 70px #0008;animation:starterCreatedPulse 2.6s ease-in-out infinite}.starter-created-orb span{font-size:42px;font-weight:900;text-shadow:0 0 20px #fff}.starter-created>small{letter-spacing:.25em;color:#a89cff;font-size:9px}.starter-created h1{max-width:420px;margin:10px 0 9px;font-size:27px;line-height:1.35;letter-spacing:-.04em}.starter-created>p{max-width:430px;margin:0;color:#aaa4b5;font-size:10px;line-height:1.8}.starter-created-score{display:flex;align-items:baseline;justify-content:space-between;width:min(360px,100%);margin:23px 0 12px;padding:12px 14px;border:1px solid #ffffff10;border-radius:15px;background:#ffffff06}.starter-created-score span{font-size:8px;letter-spacing:.14em;color:#817b8b}.starter-created-score strong{font-size:20px;color:#b8afff}.starter-begin{width:min(360px,100%);padding:14px 18px;border-radius:15px;background:linear-gradient(135deg,#7769f2,#a75bdd);box-shadow:0 14px 36px #725ee744;font-size:13px;font-weight:800}.starter-begin:active{transform:scale(.985)}
@keyframes starterCreatedPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.025);filter:brightness(1.08)}}
@media(max-height:720px){.starter-top{height:52px}.starter-orb{width:70px;height:70px;margin-bottom:8px}.starter-orb span{font-size:24px}.starter-intro h1{font-size:18px;margin:4px auto}.starter-intro p{font-size:8px;line-height:1.5}.starter-progress{margin-top:8px}.starter-question-card{margin-top:8px;padding-top:14px}.daily-onboarding .daily-scale span{padding:7px 10px}.daily-onboarding .daily-scale b{width:24px;height:24px}.starter-skip-note{display:none}}
@media(prefers-reduced-motion:reduce){.starter-created-orb{animation:none!important}.starter-progress i{transition:none!important}}

/* v0.2.12 — OpenAI TWIN chat */
.bubble.typing{color:#8e8799;font-size:9px;letter-spacing:.04em;animation:twinThinking 1.15s ease-in-out infinite}
@keyframes twinThinking{0%,100%{opacity:.45}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.bubble.typing{animation:none!important;opacity:.8}}
