:root{font-family:DM Sans,Noto Sans SC,system-ui,sans-serif;color:#26362e;background:#f3f5f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #94b8a2;outline-offset:2px}.app{position:relative;min-height:100dvh;overflow:hidden}.world,.world canvas,.wash{position:absolute;inset:0;width:100%;height:100%;display:block}.world{touch-action:none}.wash{pointer-events:none;background:linear-gradient(90deg,#fffffff7,#ffffffc7 28%,#ffffff14 57%,#ffffff4d)}.in-room .wash{background:linear-gradient(180deg,rgba(249,250,247,.65),transparent 26%)}.topbar{position:absolute;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;z-index:2}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700;letter-spacing:-1.4px}.brand small{font-size:8px;letter-spacing:1.6px;color:#91a197;font-weight:700;margin-left:4px}.brand-mark{width:27px;height:27px;display:grid;grid-template-columns:1fr 1fr;gap:3px;transform:rotate(-8deg)}.brand-mark i{background:#527761;border-radius:2px}.brand-mark i:nth-child(2){opacity:.48}.brand-mark i:nth-child(3){opacity:.65}.top-right{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#718178;letter-spacing:.03em}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#86b28d;box-shadow:0 0 0 4px #dfece0}.divider{width:1px;height:18px;background:#d7dfd8;margin:0 9px}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:700;color:#82998a}.eyebrow>span:not(.live-dot){display:inline-block;width:20px;height:1px;background:#98b29e;vertical-align:middle;margin-right:7px}.eyebrow.dark{color:#8a9b90}.welcome{position:absolute;left:7.5%;top:24%;max-width:480px;z-index:1;pointer-events:none}.welcome h1{font-size:clamp(36px,3.8vw,60px);letter-spacing:-.06em;line-height:1.28;margin:26px 0 20px;font-weight:600}.welcome h1 em{font-style:normal;color:#83a08c}.welcome p{font-size:14px;line-height:2.1;color:#839187}.welcome-foot{display:flex;gap:28px;margin-top:58px;font-size:10px;font-weight:600;color:#a1aea5;letter-spacing:.05em}.entry-card{position:absolute;z-index:3;right:5%;top:50%;transform:translateY(-47%);width:360px;background:#fffffff0;border:1px solid rgba(255,255,255,.9);box-shadow:0 18px 70px #52665a18;border-radius:17px;padding:26px 27px 20px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.card-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.card-title h2{font-size:19px;margin:7px 0 0;letter-spacing:-.04em}.card-index{color:#97aa9b;font-size:21px}.entry-card label{display:block;font-size:11px;font-weight:700;margin:12px 0 0}.optional{float:right;color:#aab5ad;font-size:10px;font-weight:400}.entry-card input:not([type=file]),.entry-card select{width:100%;height:40px;margin-top:8px;padding:0 12px;border:1px solid #e4ebe4;border-radius:7px;background:#f9fbf8;color:#344b3b;font-size:12px}.entry-card input::placeholder{color:#b0bcb1}.entry-card select{appearance:auto}.entry-card .upload{color:#668b70;display:inline-block;cursor:pointer;margin:10px 0 0;font-weight:600}.upload input{display:none}.privacy{font-size:10px;color:#a3afa5;line-height:1.5;margin:5px 0 13px}.primary{margin-top:18px;width:100%;height:45px;display:flex;align-items:center;justify-content:space-between;background:#3e654c;color:#fff;border:0;border-radius:7px;padding:0 15px;font-size:12px;font-weight:700}.primary:hover{background:#32563f}.primary span{font-size:18px}.or{display:flex;align-items:center;gap:10px;font-size:10px;color:#aeb9af;margin:15px 0}.or span{height:1px;background:#ebf0eb;flex:1}.join-row{display:flex;gap:7px}.join-row input{margin:0!important;flex:1;min-width:0}.join-row button{width:91px;border:1px solid #dce7dc;background:#f2f7f0;color:#43694d;border-radius:7px;font-size:11px;font-weight:700}.join-row button span{margin-left:8px;font-size:15px}.card-note{border-top:1px solid #eef2ed;margin-top:19px;padding-top:15px;font-size:9px;color:#a8b4a9}.lobby-caption{position:absolute;bottom:8%;left:48%;display:flex;gap:10px;align-items:center;z-index:1;pointer-events:none}.caption-number{background:#fff;color:#71967b;box-shadow:0 5px 25px #53685a19;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.lobby-caption b,.lobby-caption small{display:block;font-size:10px}.lobby-caption small{color:#a1afa3;margin-top:3px}.corner-note{position:absolute;left:4.5%;bottom:25px;color:#a4b2a6;letter-spacing:.12em;font-size:8px;font-weight:700}.corner-note span{padding:0 8px}.notice{position:absolute;z-index:20;top:80px;left:50%;transform:translate(-50%);background:#fff8ef;border:1px solid #e9d6bc;color:#765b38;padding:12px 14px;border-radius:9px;box-shadow:0 10px 30px #0001;font-size:12px;display:flex;gap:20px;max-width:min(90vw,580px)}.notice button{border:0;background:none;font-size:18px;color:inherit;line-height:1}.room-info{position:absolute;top:106px;left:4.5%;display:flex;align-items:center;gap:30px}.room-info h2{font-size:22px;letter-spacing:-.04em;margin:9px 0}.room-info h2 span{color:#93ae9a;font-size:16px}.room-code{border-left:1px solid #dce5dc;padding-left:24px}.room-code span,.room-code small{display:block;font-size:9px;color:#8e9f91}.room-code button{display:flex;align-items:center;gap:7px;border:0;background:none;padding:4px 0;color:#3e654c;font-size:15px;letter-spacing:.12em;font-weight:700}.controls-hint{position:absolute;left:4.5%;bottom:38px;font-size:10px;color:#87988c}.controls-hint b{color:#576d5e;margin-right:4px}.controls-hint span{margin:0 5px;color:#c1ccc2}.chat-panel{position:absolute;right:3%;top:105px;bottom:120px;width:310px;display:flex;flex-direction:column;background:#ffffffe6;border:1px solid #fff;border-radius:14px;box-shadow:0 14px 55px #52665a17;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 15px}.chat-header h3{font-size:17px;margin:7px 0 0;letter-spacing:-.03em}.chat-header h3 span{color:#a7c0ac}.icon-button{border:0;background:#f2f6f1;border-radius:50%;width:29px;height:29px;color:#819486;font-size:19px}.chat-members{padding:12px 20px;border-top:1px solid #eef2ed;border-bottom:1px solid #eef2ed;color:#91a194;font-size:10px;display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden}.messages{flex:1;overflow:auto;padding:12px 18px}.system-message{color:#a1afa3;font-size:10px;text-align:center;margin:15px 0}.message{margin:12px 0}.message b{font-size:10px;color:#7d9181}.message p{display:table;max-width:100%;word-break:break-word;margin:5px 0;padding:9px 11px;border-radius:3px 10px 10px;background:#f0f5ef;font-size:12px;line-height:1.5}.message.mine{text-align:right}.message.mine p{margin-left:auto;background:#e4f0e4;border-radius:10px 3px 10px 10px;text-align:left}.chat-form{display:flex;gap:7px;padding:13px 14px;border-top:1px solid #edf2ec}.chat-form input{flex:1;min-width:0;border:0;background:#f5f8f4;border-radius:7px;padding:10px;font-size:11px;outline:none}.chat-form button{width:36px;border:0;border-radius:7px;background:#476e53;color:#fff}.toolbar-wrap{position:absolute;bottom:22px;left:50%;transform:translate(-50%);z-index:4}.toolbar{display:flex;align-items:center;gap:3px;padding:7px;background:#fffffff0;border:1px solid white;border-radius:12px;box-shadow:0 10px 40px #344c3c20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar button{border:0;background:transparent;color:#7d8f81;min-width:61px;height:48px;border-radius:7px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:9px}.toolbar button:hover,.toolbar button.active{color:#426a4d;background:#edf5eb}.toolbar .leave{color:#ad827b}.toolbar i{width:1px;height:29px;background:#edf1ed;margin:0 4px}.toolbar-symbol{font-size:22px;line-height:20px}.popover{position:absolute;bottom:78px;left:50%;transform:translate(-50%);width:252px;background:#fff;border-radius:12px;padding:17px;box-shadow:0 12px 40px #405b4826}.popover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.popover button{border:1px solid #e5ede4;background:#f7faf6;color:#667d6b;padding:9px 0;border-radius:7px;font-size:11px}.popover button:hover,.popover button.selected{background:#e6f1e5;color:#3e654c}.audio-unlock{position:absolute;top:170px;left:4.5%;border:0;border-radius:7px;background:#466d51;color:#fff;padding:10px 14px}.touch-controls{display:none}@media(max-height:750px)and (min-width:801px){.entry-card{padding:18px 23px 16px;transform:translateY(-46%)}.card-title{margin-bottom:12px}.entry-card label{margin-top:8px}.entry-card input:not([type=file]),.entry-card select{height:36px;margin-top:5px}.primary{height:40px;margin-top:11px}.or{margin:10px 0}.card-note{margin-top:12px;padding-top:10px}.welcome{top:23%}}@media(max-width:1000px){.welcome{left:5%;max-width:36%}.welcome h1{font-size:36px}.welcome-foot{display:none}.entry-card{right:3%;width:330px}.lobby-caption{left:43%}.controls-hint{display:none}}@media(max-width:700px){.app{min-height:100dvh;overflow:auto}.topbar{height:62px;padding:0 18px}.brand{font-size:19px}.brand small{display:none}.top-right{font-size:10px}.wash{background:linear-gradient(180deg,#ffffff8c,#ffffff1a 32%,#fff 57%)}.welcome{top:100px;left:22px;max-width:70%}.welcome h1{font-size:31px;margin:14px 0}.welcome p{font-size:11px;line-height:1.8}.entry-card{position:relative;top:auto;right:auto;transform:none;width:auto;margin:54vh 14px 30px;padding:22px}.lobby-caption{top:43vh;bottom:auto;left:22px}.corner-note{display:none}.room-info{top:84px;left:18px;gap:15px}.room-info h2{font-size:18px}.room-code{padding-left:15px}.chat-panel{top:auto;bottom:100px;right:12px;width:min(300px,calc(100% - 24px));height:min(45vh,370px)}.toolbar-wrap{bottom:12px;width:calc(100% - 20px)}.toolbar{justify-content:space-around;gap:0;padding:5px}.toolbar button{min-width:0;flex:1;font-size:8px}.toolbar i{margin:0 2px}.touch-controls{position:absolute;display:grid;grid-template-columns:repeat(4,38px);gap:4px;bottom:105px;left:12px;touch-action:none}.touch-controls .up{grid-column:2}.touch-controls button{width:38px;height:38px;border:1px solid #fff;background:#ffffffcf;color:#53715a;border-radius:8px;box-shadow:0 4px 14px #344c3c14}.touch-controls button.selected{background:#55785d;color:#fff}.audio-unlock{top:156px;left:18px}.notice{top:66px;width:calc(100% - 28px)}}@media(max-width:700px){.world,.wash{position:fixed;height:100dvh}}.in-room .topbar{text-shadow:0 0 3px #fff,0 0 8px #fff}.in-room .room-info,.in-room .room-code button,.in-room .controls-hint{text-shadow:0 1px #fff,1px 0 #fff,-1px 0 #fff,0 -1px #fff,0 0 5px #fffe}.in-room .room-info .eyebrow,.in-room .room-code span,.in-room .room-code small{color:#5d7463}.in-room .controls-hint{bottom:98px;color:#425a49}.in-room .controls-hint b{color:#314b38}.in-room .controls-hint span{color:#84998a}.avatar-settings{margin:13px 0 0;border:1px solid #e4ebe4;border-radius:7px;background:#f9fbf8}.avatar-settings summary{padding:10px 12px;cursor:pointer;font-size:11px;font-weight:700;color:#526f59}.avatar-settings-content{padding:0}.avatar-settings-content label{display:block;font-size:11px;color:#526f59;font-weight:600;margin:8px 0!important}.avatar-settings-content output{float:right;color:#7c9380;font-weight:500}.avatar-settings-content input[type=range],.entry-card .avatar-settings-content input[type=range]{display:block;width:100%;height:20px;padding:0;margin:5px 0 0;accent-color:#527b5b;border:0;background:transparent}.avatar-settings-content small{display:block;color:#99aa9b;font-size:9px;line-height:1.5}.avatar-settings-content .reset-settings{border:0;background:none;color:#65886d;font-size:10px;padding:3px 0 8px}.entry-card{max-height:calc(100dvh - 90px);overflow-y:auto}@media(max-width:700px){.entry-card{max-height:none;overflow:visible}}.photo-mask{position:absolute;inset:0;z-index:2;overflow:hidden;display:grid;place-items:center;pointer-events:none}.photo-frame{position:relative;width:min(100%,177.7778dvh);max-height:100%;aspect-ratio:16/9;border:1px solid #ffffffe0;box-shadow:0 0 0 100vmax #1421198c}.photo-frame span{position:absolute;top:10px;left:12px;font-size:10px;letter-spacing:.14em;color:#fff;text-shadow:0 1px 4px #0008}.photo-controls{position:absolute;z-index:6;right:3%;bottom:105px;display:flex;align-items:end;gap:7px;padding:12px;background:#fffffff0;border:1px solid white;border-radius:10px;box-shadow:0 10px 35px #344c3c30}.photo-controls label{font-size:10px;color:#708375}.photo-controls select{display:block;margin-top:5px;height:36px;border:1px solid #e4ebe4;border-radius:6px;background:#f8fbf7;padding:0 8px;font-size:11px;color:#344b3b}.photo-controls button{height:36px;border:1px solid #e4ebe4;background:#f8fbf7;border-radius:6px;padding:0 12px;color:#526f59;font-size:11px}.photo-controls .photo-shutter{background:#41694d;color:#fff;border-color:#41694d;font-weight:700}.photographing .chat-panel,.photographing .room-info,.photographing .controls-hint{visibility:hidden}.recent-photo{position:absolute;z-index:5;left:4.5%;bottom:76px;padding:8px 10px;border-radius:7px;background:#fffffff0;color:#4b7455;text-decoration:none;font-size:10px;box-shadow:0 4px 16px #344c3c1c}@media(max-width:700px){.photo-controls{left:10px;right:10px;bottom:95px;justify-content:center}.photo-controls select{max-width:160px}.recent-photo{bottom:190px;left:12px}}.reaction-choice span{display:block;font-size:20px;line-height:1.2;margin-bottom:4px}@media(max-width:700px){.toolbar{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.toolbar button{flex:0 0 52px}.toolbar i{flex:0 0 1px}}.upload.disabled{opacity:.55;cursor:not-allowed}.avatar-settings-content .check-setting{display:flex;align-items:center;gap:5px}.entry-card .avatar-settings-content .check-setting input,.avatar-settings-content .check-setting input{width:auto;height:auto;margin:0;padding:0;accent-color:#527b5b}.avatar-settings{padding:0 12px 12px}.avatar-settings summary{margin:0 -12px}.avatar-settings-content .settings-actions{display:flex;gap:8px;margin:14px 0 10px}.avatar-settings-content .settings-actions button{flex:1;min-height:34px;border:1px solid #dce8dc;border-radius:7px;background:#f1f7f0;color:#486b50;padding:7px 10px;font-size:11px;font-weight:600}.avatar-settings-content .settings-actions button:hover{background:#e5f0e4}.popover:has(.avatar-settings-content){max-height:min(75dvh,650px);overflow-y:auto}.world canvas.performance-overlay{position:absolute;inset:175px auto auto 4.5%;width:280px;height:auto;z-index:2;pointer-events:none}.world canvas.performance-overlay[hidden]{display:none}@media(max-width:700px){.world canvas.performance-overlay{top:145px;left:12px;width:240px}}.recent-photo{display:flex;gap:10px;align-items:center}.recent-photo a,.album-download-fallback{color:#4b7455;text-decoration:none}.recent-photo button{border:0;border-left:1px solid #dce8dc;background:none;padding:0 0 0 10px;color:#4b7455;font-size:10px}.album-download-fallback{position:absolute;z-index:5;left:4.5%;bottom:118px;padding:8px 10px;border-radius:7px;background:#fffffff0;font-size:10px;box-shadow:0 4px 16px #344c3c1c}.album-panel{position:absolute;z-index:3;right:3%;top:105px;bottom:120px;width:350px;display:flex;flex-direction:column;background:#fffffff5;border:1px solid #fff;border-radius:14px;box-shadow:0 14px 55px #52665a25;overflow:hidden}.album-header{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 15px}.album-header h3{font-size:17px;margin:7px 0 0;letter-spacing:-.03em}.album-header h3 span{color:#a7c0ac;font-size:12px}.album-intro{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-top:1px solid #eef2ed;border-bottom:1px solid #eef2ed;font-size:10px;color:#809287;line-height:1.5}.album-intro button,.album-actions button,.album-actions a{flex-shrink:0;border:1px solid #dce8dc;border-radius:7px;padding:8px 10px;background:#f1f7f0;color:#486b50;font-size:10px;text-decoration:none}.album-scroll{flex:1;overflow:auto;padding:14px}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.album-empty{text-align:center;color:#9aa99c;font-size:11px;margin:36px 0}.album-thumbnail{padding:0;overflow:hidden;border:1px solid #e2ebe1;border-radius:8px;background:#f3f7f1;color:#6e8573;text-align:left}.album-thumbnail img,.album-thumbnail>span{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#e8ede8}.album-thumbnail>span{display:grid;place-items:center;font-size:10px}.album-thumbnail small{display:block;overflow:hidden;padding:7px 8px;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.album-original{min-height:0;overflow:auto;padding:0 16px 16px}.album-back{border:0;background:none;padding:3px 0 12px;color:#5d8065;font-size:11px}.album-image{display:grid;place-items:center;min-height:130px;border-radius:8px;background:#e8ede8;color:#7c9180;font-size:11px;overflow:hidden}.album-image img{display:block;width:100%;height:auto;object-fit:contain}.album-details{display:flex;flex-direction:column;gap:4px;padding:12px 0;color:#829587;font-size:10px}.album-details strong{font-size:12px;color:#4b6651}.album-actions{display:flex;gap:8px;align-items:center}@media(max-width:700px){.album-panel{top:auto;bottom:100px;right:12px;width:min(350px,calc(100% - 24px));height:min(50vh,400px)}.album-download-fallback{left:12px;bottom:225px}}.toolbar-wrap{max-width:calc(100vw - 20px)}.toolbar{overflow-x:auto;scrollbar-width:thin}.avatar-settings-content .room-upload{display:inline-block;cursor:pointer;color:#668b70;font-size:10px;margin:3px 0 8px!important}.avatar-settings-content .room-upload.disabled{opacity:.55;cursor:not-allowed}.avatar-settings-content .room-upload{position:relative}.avatar-settings-content .room-upload input{position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%)}.avatar-settings-content .room-upload:focus-within{outline:2px solid #94b8a2;outline-offset:2px}.avatar-settings-content select{display:block;width:100%;height:36px;margin-top:5px;padding:0 8px;border:1px solid #e4ebe4;border-radius:7px;background:#f9fbf8;color:#344b3b;font-size:11px}.toolbar-icon{position:relative;display:grid;place-items:center;width:22px;height:20px}.toolbar .toolbar-badge{position:absolute;top:-6px;left:15px;min-width:16px;height:16px;padding:0 3px;border:1px solid #fff;border-radius:9px;background:#527b5b;color:#fff;font-size:9px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap}
