/* V177 visual unlock architecture; scoped to its own room components. */
.olu177-room{--olu177-ink:#fce9d2;--olu177-gold:#f7d49d;--olu177-muted:#ccbecf;box-sizing:border-box;color:var(--olu177-ink);border:1px solid #eabf9654;background:linear-gradient(145deg,#272039,#1a1d2f);border-radius:20px;padding:clamp(10px,2.3vw,22px);margin:16px auto;max-width:1200px;box-shadow:0 16px 54px #080a142b;min-width:0}
.olu177-room *{box-sizing:border-box}.olu177-room-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:0 2px 12px}.olu177-room-heading>span{order:-1;flex-basis:100%;font:800 .63rem 'DM Sans',sans-serif;letter-spacing:.17em;color:#eac08b}.olu177-room-heading h2,.olu177-room-heading h3{margin:0;font:600 clamp(1.7rem,4.2vw,2.8rem)/1.1 'Cormorant Garamond',Georgia,serif;color:#fbe0bc}.olu177-mini .olu177-room-heading h3{font-size:clamp(1.45rem,3.2vw,2.15rem)}
.olu177-stage{position:relative;width:100%;background:#1d2036;border-radius:15px;overflow:hidden;isolation:isolate;box-shadow:0 13px 32px #0009,inset 0 0 0 2px #ffe2b640}.olu177-canvas{position:relative;width:100%;aspect-ratio:1200/675;min-height:180px;overflow:hidden}.olu177-canvas::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#12102322,transparent 30%,transparent 75%,#120d232c);z-index:7}.olu177-bare,.olu177-layer{position:absolute;width:100%;height:100%;inset:0;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}.olu177-bare{z-index:0}.olu177-layer{z-index:1;opacity:0;transition:opacity .65s ease,filter .75s ease}.olu177-layer.is-on{opacity:1}.olu177-is-preview .olu177-layer{filter:drop-shadow(0 0 5px #ffc99538)}
.olu177-avatar{position:absolute;z-index:5;bottom:7%;width:13%;height:35%;padding:0;border:0;background:transparent;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.olu177-avatar img{height:100%;width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 8px 6px #05050b99)}.olu177-bunny{left:40%}.olu177-kat{left:53%}.olu177-avatar::before{content:"";width:12%;height:5%;position:absolute;left:53%;top:29%;opacity:0;z-index:2;border-bottom:3px solid #fff0c9;border-radius:0 0 95% 95%;filter:drop-shadow(0 0 4px #fff5c9)}.olu177-avatar.is-smiling{animation:olu177Wiggle .95s ease}.olu177-avatar.is-smiling::before{animation:olu177Smile 1.05s ease forwards}.olu177-avatar:focus-visible,.olu177-mascot:focus-visible{outline:2px dashed #ffe8bb;outline-offset:2px}
.olu177-mascot{position:absolute;z-index:6;bottom:5.5%;left:65%;width:9%;height:19%;padding:0;border:0;background:transparent;cursor:pointer;transform-origin:50% 80%;-webkit-tap-highlight-color:transparent}.olu177-mascot img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 6px #070813);pointer-events:none}.olu177-mascot.is-dragon{width:13%;height:24%;left:65%;bottom:5%}.olu177-mascot.is-shaking{animation:olu177Shake .12s ease-in-out 9}.olu177-mascot.is-purring{animation:olu177Purr 1s ease-out}.olu177-sheen{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 52% 37%,#ffe3ba09,transparent 72%)}
.olu177-carousel-wrap{margin-top:14px}.olu177-carousel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 10px}.olu177-carousel-head h4{font:600 1.3rem/1.05 'Cormorant Garamond',Georgia,serif;margin:0;color:#f7d8a6}.olu177-carousel-head small{font-size:.68rem;letter-spacing:.02em;color:#d1c5ca}.olu177-controls{display:flex;gap:6px}.olu177-nav{height:32px;width:35px;border:1px solid #e3c38b77;border-radius:9px;background:#43374b;color:#f8dfba;font-size:1.2rem;cursor:pointer}.olu177-rail{display:flex;gap:10px;overflow:auto hidden;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding:3px 2px 12px;scrollbar-width:thin;scrollbar-color:#caa177 #23243a}.olu177-card{scroll-snap-align:start;flex:0 0 clamp(148px,25vw,199px);background:#161b2c;border:1px solid #b89b754e;border-radius:14px;padding:9px;display:flex;flex-direction:column;gap:6px;min-height:188px}.olu177-card.is-ready{border-color:#e5c389aa}.olu177-card.is-owned{border-color:#b8dbbb8a}.olu177-card-art{height:99px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:9px;background:radial-gradient(ellipse at center,#55516b 3%,#222339 74%)}.olu177-card-art img{width:96%;height:96%;object-fit:contain;filter:drop-shadow(0 7px 7px #08091599)}.olu177-card strong{font:.78rem/1.3 'DM Sans',sans-serif;color:#ffeed7;min-height:2em}.olu177-card-state{font:.64rem/1.3 'DM Sans',sans-serif;color:#c9c2c5;min-height:2em}.olu177-action{border:1px solid #dec18a88;border-radius:10px;min-height:34px;background:#48394b;color:#ffe8bc;cursor:pointer;font-size:.73rem;font-weight:700;margin-top:auto}.olu177-action:disabled{opacity:.52;cursor:default}.olu177-card.is-ready .olu177-action{background:#95744b;color:#151527}
.olu177-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 2px 1px}.olu177-status{font:.71rem/1.55 'DM Sans',sans-serif;color:#dfd1c2;margin:0;flex:1;min-width:170px}.olu177-foot-actions{display:flex;gap:7px;flex-wrap:wrap}.olu177-preview,.olu177-visit,.olu177-mode{font:700 .73rem 'DM Sans',sans-serif;padding:9px 11px;border:1px solid #e7c99c85;background:#403446;border-radius:9px;color:#ffedcf;text-decoration:none;cursor:pointer}.olu177-preview[aria-pressed=true]{background:#987454;color:#181627}.olu177-full-extras{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:8px 2px 2px;color:#d9c1ae;font-size:.71rem}
.olu177-mini{padding:12px;margin:12px 0;border-radius:17px}.olu177-mini .olu177-canvas{min-height:140px}.olu177-mini .olu177-card{flex-basis:155px;min-height:169px}.olu177-mini .olu177-card-art{height:78px}.olu177-mini .olu177-card strong{font-size:.72rem}.olu177-mini .olu177-foot{padding-bottom:0}
/* Redesigned Sanctuary: one main visual. Original study, goals, encouragement
 * modules remain in the page but the duplicate legacy room painting is hidden. */
.ka-page .olu177-sanctuary-intro{max-width:1250px;margin:4px auto 16px;padding:0 16px}.ka-page .olu177-room{max-width:1220px;margin:8px auto 19px}.ka-page .ka-scene-head{display:none}.ka-page #kaPanScroll,.ka-page .ka-pan-controls,.ka-page .ka78-explore-label{display:none!important}.ka-page .ka72-progress{margin-top:7px}.ka-page .ka-scene-area{max-width:1220px;margin:0 auto}.ka-page .ka72-progress-copy p{max-width:720px}
/* Preserve password gate and privacy status: bedroom room scene is inside #bedUnlocked. */
.bed-unlocked .olu177-room{max-width:1150px}.olu177-mini-in-feature{max-width:1100px;margin:18px auto}
@keyframes olu177Wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}75%{transform:rotate(-2deg)}}
@keyframes olu177Smile{0%,100%{opacity:0;transform:scale(.6)}30%,65%{opacity:1;transform:scale(1.1)}}
@keyframes olu177Shake{0%,100%{transform:rotate(-13deg) scale(.95)}50%{transform:rotate(15deg) scale(1.13)}}
@keyframes olu177Purr{0%,100%{transform:scale(1)}35%{transform:translateY(-13px) scale(1.1)}65%{transform:translateY(0) rotate(5deg)}}
@media(max-width:680px){.olu177-room{padding:9px;border-radius:13px}.olu177-canvas{min-height:160px}.olu177-avatar{width:15%;height:36%}.olu177-bunny{left:37%}.olu177-kat{left:54%}.olu177-mascot{left:72%}.olu177-mascot.is-dragon{left:70%}.olu177-card{flex-basis:146px}.olu177-foot{flex-direction:column;align-items:stretch}.olu177-foot-actions{justify-content:space-between}.olu177-room-heading h2{font-size:1.8rem}.olu177-mini .olu177-card{flex-basis:143px}}
@media(prefers-reduced-motion:reduce){.olu177-layer{transition:none}.olu177-avatar.is-smiling,.olu177-avatar.is-smiling::before,.olu177-mascot.is-shaking,.olu177-mascot.is-purring{animation:none}}

.olu177-sanctuary-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 15px}.olu177-sanctuary-actions a{display:inline-flex;padding:10px 13px;background:#35283e;border:1px solid #d6b48c88;color:#ffe8ca;text-decoration:none;border-radius:10px;font:700 .76rem 'DM Sans',sans-serif}.ka-page .ka-room-shortcuts{max-width:1220px;margin:12px auto;display:flex!important;flex-wrap:wrap;gap:7px}.ka-page .ka-room-shortcuts button{font-size:.72rem;padding:8px 10px}
