*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;background:#e7e8da;color:#314439;overflow:hidden;transition:background .6s,color .6s}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b8823f;outline-offset:4px}.room-header{height:85px;position:absolute;z-index:5;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:0 40px}.brand{display:flex;gap:14px;align-items:center;font-size:17px;font-weight:700;letter-spacing:-.5px}.brand-symbol{font:italic bold 38px Georgia;letter-spacing:-6px;padding-right:7px}.brand small{display:block;font-size:7px;font-weight:400;letter-spacing:1.4px;margin-top:6px}.room-actions{display:flex;gap:12px;align-items:center;font-size:10px}.room-actions button,.room-actions a{padding:10px 15px;background:#f9faf375;border:1px solid #6f806729;border-radius:8px;backdrop-filter:blur(12px)}.room-actions button{font-size:15px;display:flex;align-items:center;gap:7px}.room-actions button span{font-size:10px}.room-intro{position:absolute;z-index:2;top:111px;left:43px;pointer-events:none}.room-intro>p{font-size:8px;letter-spacing:1.3px;opacity:.65;margin:0 0 17px}.room-intro h1{font-family:Georgia,'Batang',serif;font-weight:500;font-size:37px;letter-spacing:-1.8px;line-height:1.4;margin:0 0 15px}.room-intro>span{font-size:10px;opacity:.7}#scene{position:absolute;inset:30px 0 65px;touch-action:none}#scene canvas{display:block;width:100%;height:100%}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:1;background:#e7e8da;font-size:12px;letter-spacing:1px}#loading .loading-leaf{font-size:50px;color:#83965e;animation:turn 6s linear infinite}#scene-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#dbe2cc;font-size:13px;gap:8px;padding:25px;text-align:center}#scene-fallback a{background:#355b42;color:white;padding:14px 22px;border-radius:8px}#scene-fallback p:last-child{font-size:11px;opacity:.7}#room-labels{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.object-label{pointer-events:auto;position:absolute;padding:6px 10px;background:#fffff3ec;color:#3a5140;border:1px solid #bac9a58c;box-shadow:0 3px 12px #344d3320;backdrop-filter:blur(5px);border-radius:20px;font-size:10px;white-space:nowrap;transform:translate(-50%,-100%);transition:opacity .25s,background .2s}.object-label:before{content:'';display:inline-block;width:5px;height:5px;background:#7a9c58;border-radius:50%;margin-right:6px;vertical-align:middle}.object-label:after{content:'';position:absolute;left:50%;top:100%;height:17px;width:1px;background:#78926180}.object-label:hover{background:#e5efce}.labels-off .object-label{opacity:0;pointer-events:none}.scene-tools{position:absolute;z-index:4;right:35px;bottom:112px;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.scene-tools>span{font-size:9px;opacity:.6;letter-spacing:.2px}.scene-tools>div{display:flex;gap:5px}.scene-tools button{width:32px;height:31px;border-radius:6px;border:1px solid #6f806729;background:#f9faf3b8;backdrop-filter:blur(10px);font-size:18px}.scene-tools #label-toggle{width:auto;font-size:9px;padding:0 10px}.dock{position:absolute;z-index:5;left:50%;bottom:36px;transform:translateX(-50%);padding:7px 12px;display:flex;gap:5px;border:1px solid #f8f9efb3;border-radius:14px;background:#fafbf0cb;box-shadow:0 7px 28px #364c2620;backdrop-filter:blur(20px)}.dock button{background:transparent;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 14px 5px;font-size:9px;border-radius:8px;white-space:nowrap;transition:background .2s,transform .2s}.dock button:hover{background:#dce6c4;transform:translateY(-3px)}.dock button>span{font-size:20px;color:#69805a;line-height:1.3}.concept-note{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-size:8px;opacity:.5;margin:0;pointer-events:none}.welcome-note{position:absolute;left:35px;bottom:107px;display:flex;gap:8px;align-items:center;pointer-events:none}.welcome-note img{object-fit:contain}.welcome-note p{font-size:10px;line-height:1.8;background:#ffffed85;border:1px solid #c6ceb875;padding:10px 15px;border-radius:12px 12px 12px 0}dialog{position:fixed;inset:0 auto 0 auto;margin:auto 4vw auto auto;width:395px;max-width:calc(100vw - 32px);max-height:85dvh;border:1px solid #dce1cf;border-radius:16px;padding:26px;background:#fcfcf3;color:#354a3b;box-shadow:0 20px 100px #19361d55}dialog::backdrop{background:#263a2e48;backdrop-filter:blur(3px)}.panel-top{display:flex;justify-content:space-between;align-items:center}.panel-top>span{font-size:8px;letter-spacing:2px;color:#879577}.panel-top button{font-size:24px;background:transparent;color:#839577;padding:0 3px}dialog h2{font-family:Georgia,'Batang',serif;font-size:27px;font-weight:500;margin:16px 0 12px;letter-spacing:-.6px}#panel-description{font-size:11px;line-height:1.9;color:#859177;margin:0 0 21px}.panel-link{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #e4e8d8;gap:15px}.panel-link strong{font-size:12px;display:block;font-weight:600}.panel-link small{font-size:10px;display:block;color:#929c85;margin-top:4px}.panel-link>span:last-child{color:#879c70}.panel-link:hover strong{text-decoration:underline;text-underline-offset:3px}.panel-search{display:flex;gap:8px;padding-bottom:15px}.panel-search input{width:100%;min-width:0;background:#f1f3e7;border:1px solid #d7dfc7;border-radius:6px;padding:10px;font-size:11px;color:#354a3b}.panel-search button,.save-memo{background:#456045;color:#fafced;padding:10px 15px;border-radius:6px;font-size:11px}.panel-search-result{font-size:11px;color:#829172}textarea{width:100%;border:1px solid #d9dfc8;border-radius:5px;background:#f1f1dc;padding:15px;resize:vertical;min-height:155px;line-height:1.9;font-family:'Batang',serif;color:#43533a;font-size:16px}.memo-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.memo-bottom small{font-size:9px;color:#8b967e}.calc-display{display:block;background:#d1dcb9;padding:14px;text-align:right;border-radius:8px;font:30px monospace;overflow:hidden}.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.calc-keys button{background:#e6e9d9;border-radius:5px;padding:12px 5px;font-size:17px}.calc-keys button.op{background:#c1d0ad}.calc-keys button.equals{background:#547448;color:white}.calc-keys button.zero{grid-column:span 2}.calc-keys button:active{background:#bdc9aa}.calc-source{font-size:10px;display:block;text-align:center;border-top:1px solid #dce2ce;padding-top:16px;color:#667e56}.night{background:#263b3a;color:#e7e8cf}.night .room-actions button,.night .room-actions a,.night .scene-tools button{background:#2f4546ab;border-color:#9bab8b33;color:#e1e6ca}.night .welcome-note p{background:#314949b0;border-color:#91a08040}.night .dock{background:#314b46d9;border-color:#94ac7a40;color:#e6ebcf}.night .dock button>span{color:#b9ce9e}.night .dock button:hover{background:#536d54}.night .object-label{background:#314c43df;color:#e9edce;border-color:#94ad7955}.night .object-label:hover{background:#466850}[hidden]{display:none!important}@keyframes turn{to{transform:rotate(360deg)}}
@media(min-width:1500px){.room-intro{left:55px;top:130px}.room-intro h1{font-size:46px}.room-header{padding:0 53px}.scene-tools{right:50px;bottom:128px}.welcome-note{left:50px;bottom:130px}}
@media(max-width:800px){.room-header{height:74px;padding:0 22px}.brand{font-size:14px;gap:10px}.brand-symbol{font-size:32px}.brand small{font-size:6px;letter-spacing:.8px}.room-actions{gap:6px}.room-actions a{padding:9px;font-size:9px}.room-actions button{padding:8px 9px}.room-actions button span{font-size:9px}.room-intro{top:98px;left:24px}.room-intro h1{font-size:31px}.room-intro>p{font-size:7px;margin-bottom:10px}.room-intro>span{font-size:9px}.welcome-note{display:none}.scene-tools{right:22px;bottom:125px}.dock button{padding:6px 11px}.dock{bottom:35px}.concept-note{font-size:7px;bottom:12px}dialog{margin:auto;max-height:82dvh}}
@media(max-width:480px){.room-header{height:69px;padding:0 17px}.brand{font-size:12px;gap:8px}.brand-symbol{font-size:28px}.brand small{font-size:5px;letter-spacing:.4px;margin-top:5px}.room-actions a{font-size:8px;padding:8px}.room-actions button{padding:6px 9px;font-size:16px}.room-actions button span{display:none}.room-intro{top:94px;left:23px}.room-intro h1{font-size:29px;margin-bottom:10px}.room-intro>span{font-size:9px}#scene{inset:65px 0 90px}.dock{gap:0;bottom:30px;padding:6px 5px;border-radius:11px;max-width:calc(100% - 24px)}.dock button{font-size:8px;padding:6px 10px;gap:5px}.dock button>span{font-size:18px}.scene-tools{bottom:118px;right:17px;gap:9px}.scene-tools>span{font-size:8px}.scene-tools button{width:29px;height:29px}.scene-tools #label-toggle{font-size:8px}.concept-note{font-size:6px;bottom:9px}.object-label{font-size:9px;padding:5px 8px}.object-label:after{height:12px}dialog{padding:22px;width:360px}dialog h2{font-size:26px}}
@media(max-height:600px) and (min-width:700px){.room-intro{top:83px}.room-intro h1{font-size:26px}.room-intro>span{display:none}.welcome-note{display:none}.scene-tools{bottom:106px}.dock{bottom:25px}.concept-note{bottom:4px}#scene{inset:10px 0 35px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.poster .room-header,.poster .room-intro,.poster #room-labels,.poster .scene-tools,.poster .welcome-note,.poster .dock,.poster .concept-note{display:none!important}.poster #scene{inset:0}
.notebook-choices{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding:5px 0}.notebook-choice{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;background:#dce5c9;color:#425a36;border:1px solid #b9c8a4;border-radius:2px 9px 9px 2px;padding:16px 13px 15px 22px;box-shadow:inset 7px 0 0 #72905a44,2px 4px 0 #e0dfcd,3px 7px 8px #32442715;transition:transform .2s}.notebook-choice:hover{transform:translateY(-4px)}.notebook-number{font-size:8px;letter-spacing:1px;opacity:.6}.notebook-choice strong{display:block;font:700 19px/1.5 'Batang',serif;letter-spacing:-.5px}.notebook-choice small:not(.notebook-number){display:block;font-size:10px;opacity:.7;margin-top:9px;line-height:1.7}.notebook-choice>span:last-child{margin-top:15px;font-size:15px;align-self:flex-end}.notebook-choice.cover-1{background:#e9dfbf;color:#6c633e;border-color:#d1c7a6}.notebook-choice.cover-2{background:#cadbd3;color:#486759;border-color:#a8c0b5}.notebook-choice.cover-3{background:#dfd4c2;color:#776349;border-color:#c8b89e}.file-choices{display:flex;flex-direction:column;gap:16px;padding-top:7px}.file-choice{border:1px solid #c5cfb3;background:#edf0df;padding:19px 15px 17px 21px;border-radius:0 6px 6px 6px;position:relative;box-shadow:inset 6px 0 0 #b4c3a0}.file-choice:before{content:'';position:absolute;top:-9px;left:-1px;width:79px;height:9px;border:1px solid #c5cfb3;border-bottom:0;border-radius:4px 4px 0 0;background:#edf0df}.file-choice strong{font-size:14px}.file-choice small{font-size:11px;line-height:1.7}.object-label.object-hovered{background:#d9e9c0;color:#334f2e}.night .object-label.object-hovered{background:#597948;color:#f0f3df}.dock button{min-width:70px;min-height:55px;font-size:10px;padding:7px 10px}.dock{max-width:calc(100% - 32px)}.room-actions button,.room-actions a,.scene-tools button{min-height:38px}.room-actions a{font-size:11px}.panel-link{min-height:66px}.panel-link strong{font-size:14px}.panel-link small{font-size:11px}#panel-description{font-size:13px}.panel-search input{font-size:13px;min-height:44px}.panel-search button{min-height:44px}.save-memo{min-height:44px}dialog{width:430px}.concept-note{font-size:9px}
@media(max-width:700px){.dock{overflow-x:auto;justify-content:flex-start;scrollbar-width:thin;scrollbar-color:#8da37755 transparent;width:calc(100% - 26px);left:13px;transform:none;bottom:32px;padding:7px 5px}.dock button{min-width:71px;flex-shrink:0;font-size:10px;padding:7px 8px}.dock button>span{font-size:20px}.concept-note{font-size:7px}.room-actions a{font-size:10px}.room-header{gap:10px}.brand{font-size:12px}.room-intro>span{font-size:10px}.scene-tools{bottom:126px}.scene-tools button{min-width:38px;min-height:38px}.scene-tools #label-toggle{font-size:10px}.notebook-choice{min-height:178px}.notebook-choice strong{font-size:18px}.notebook-choices{gap:15px}dialog{max-height:84dvh}}
dialog{inset:0 4vw 0 auto;margin:auto 0}@media(max-width:800px){dialog{inset:0 16px;margin:auto}}
@media(min-width:801px) and (max-width:1200px){.room-intro{top:105px;left:30px;max-width:310px}.room-intro h1{font-size:23px;line-height:1.5;margin-bottom:10px}.room-intro h1 br{display:none}.room-intro>p{font-size:7px;margin-bottom:13px}.room-intro>span{font-size:9px}}

/* Small objects open distinct, readable experiences. */
.welcome-note{background:transparent;border:0;padding:0;text-align:left;color:inherit;cursor:pointer;pointer-events:auto}.welcome-note:hover p{background:#fffde5}
.visiting-card{display:flex;align-items:center;gap:18px;min-height:162px;padding:24px 18px;margin:8px 0 18px;border:1px solid #d9d5b9;border-radius:5px;background:linear-gradient(130deg,#fffcee,#edf0d8);box-shadow:3px 5px 0 #e6e4d3;transform:rotate(-1deg)}
.visiting-card img{width:70px;height:80px;object-fit:contain}.visiting-card span{display:block;color:#8b9474;font-size:8px;letter-spacing:1px}.visiting-card strong{display:block;font-size:25px;letter-spacing:-1px;margin:10px 0 8px}.visiting-card small{font-size:11px;color:#768369;line-height:1.8}
.notice-choices,.game-choices{display:grid;gap:17px;padding:5px 0}.notice-card,.game-card{position:relative;display:flex;flex-wrap:wrap;align-items:center;border:1px solid #ddd3a7;border-radius:3px;padding:20px 18px;background:#f7ebbe;box-shadow:2px 4px 0 #e8e2cc;gap:11px}
.notice-card:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;left:50%;top:7px;background:#a7855a;box-shadow:0 1px 2px #645b3840}.notice-card.choice-1{background:#e0ebdc;border-color:#c5d5bc}.notice-card.choice-2{background:#f4f1e6;border-color:#ddd9c9}.choice-badge{flex-basis:100%;font-size:8px;letter-spacing:1.4px;color:#7d835f}.notice-card>span:nth-child(2),.game-card>span:nth-child(2){flex:1}.notice-card small,.game-card small{line-height:1.7}.notice-card:hover,.game-card:hover{transform:translateY(-2px)}
.game-card{background:#dfebd1;border-color:#c5d4b0;border-radius:12px;padding:20px}.game-card.choice-1{background:#dbe9e4;border-color:#bed0c7}.game-card.choice-2{background:#f0eddf;border-color:#dad6c4}.game-card strong{font-size:17px;letter-spacing:-.5px}.contact-address{padding:16px;margin-top:18px;border:1px dashed #becbad;border-radius:8px;background:#f0f3e5}.contact-address>span{display:block;font-size:11px;overflow-wrap:anywhere;user-select:text}.contact-address button{background:#476346;color:#fffdee;border-radius:5px;padding:10px 13px;margin-top:12px;font-size:11px;min-height:40px}.contact-address small{display:block;font-size:10px;color:#788568;margin-top:8px;line-height:1.7}.desk-tools{display:flex;gap:10px;margin-top:20px}.desk-tools button,.reference-button{background:#e1e8d3;border:1px solid #ccd6bc;padding:12px 14px;border-radius:6px;color:#4c6542;font-size:12px;min-height:44px}.desk-tools button{flex:1}.reference-button{display:block;width:100%;margin-top:22px}dialog[data-kind=board]{background:#fcf8e8}dialog[data-kind=tablet]{background:#f5faee}dialog[data-kind=algae] h2{font-size:25px}
@media(max-width:700px){.room-intro>span{display:block;max-width:230px;line-height:1.8}.dock{scroll-snap-type:x proximity}.dock button{scroll-snap-align:start}.visiting-card{padding:20px 14px;gap:12px}.visiting-card img{width:57px}.visiting-card strong{font-size:23px}.visiting-card small{font-size:10px}}

.object-label[data-secondary="true"]{opacity:0;pointer-events:none}.object-label[data-secondary="true"].object-hovered,.object-label[data-secondary="true"]:focus-visible{opacity:1;pointer-events:auto}.labels-off .object-label[data-secondary="true"]{opacity:0;pointer-events:none}
.object-label.object-hovered{background:#fff5c9;border-color:#c3a95c;color:#495831;box-shadow:0 0 0 3px #f7e6a358,0 4px 22px #ccb36465;transform:translate(-50%,calc(-100% - 3px))}
.night .object-label.object-hovered{background:#6c7449;color:#fff5ce;border-color:#d4c17c;box-shadow:0 0 0 3px #d7bd6430,0 2px 25px #e8cd5750}
.object-label.object-hovered:before{background:#b58c35;box-shadow:0 0 8px #cfad48}.dock{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#8da37744 transparent}.dock button{font-size:9px;flex-shrink:0}.object-label:focus-visible{opacity:1;pointer-events:auto}
/* Each collection has its own physical format. */
dialog[data-kind=notebook]{width:530px}.notebook-choices{gap:22px 20px;padding:8px 3px 12px}.notebook-choice{min-height:215px;gap:13px;transition:transform .2s,box-shadow .2s}.notebook-choice>span:nth-last-child(2){margin-top:auto}.notebook-choice>span:last-child{position:absolute;right:14px;bottom:14px;margin:0}.notebook-choice strong{font-size:19px;padding-right:10px}.notebook-choice small:not(.notebook-number){font-size:10px;line-height:1.7}.notebook-number{font-size:8px;letter-spacing:.8px;position:relative;z-index:1}.notebook-art{height:65px;flex-shrink:0;position:relative}.notebook-choice.cover-0{background-color:#f5efdb;background-image:linear-gradient(#89976c18 1px,transparent 1px),linear-gradient(90deg,#89976c18 1px,transparent 1px);background-size:14px 14px;border-color:#b8c3a0;color:#435a3b;box-shadow:inset 8px 0 #6e895c,2px 3px 0 #d8d9c4,4px 6px 0 #efecdd;padding-left:23px}.research-chart{display:flex;align-items:flex-end;gap:9px;height:46px;border-left:1px solid #93a07b;border-bottom:1px solid #93a07b;padding:0 9px}.research-chart i{width:17px;background:#8ba279;border-radius:2px 2px 0 0;height:24px}.research-chart i:nth-child(2){height:35px;background:#b5c09c}.research-chart i:nth-child(3){height:20px;background:#c8b079}.research-chart i:nth-child(4){height:41px;background:#6b885f}.art-caption{display:block;margin-top:7px;font-size:6px;letter-spacing:.6px;color:#8a9476}
.notebook-choice.cover-1{background:repeating-linear-gradient(#fff9e7 0 23px,#ded9c1 24px,#fff9e7 25px);border-color:#d2c5a3;color:#786443;border-radius:8px;box-shadow:3px 5px 0 #ede5cf,5px 8px 0 #dcd4bd,inset 0 5px #ead9af;padding:23px 15px 18px 18px;transform:rotate(1deg)}.notebook-choice.cover-1:before,.notebook-choice.cover-1:after{content:'';position:absolute;top:-9px;width:12px;height:22px;border:3px solid #a2a89d;border-radius:9px;box-shadow:inset 1px 0 #fff9e7;background:transparent}.notebook-choice.cover-1:before{left:26px}.notebook-choice.cover-1:after{right:27px}.word-alphabet{font:italic 40px/1.1 Georgia,serif;color:#947c50;display:block;padding-top:4px}.word-alphabet small{display:block!important;font:11px/1.5 sans-serif!important;letter-spacing:5px;margin-top:4px!important;color:#a78c63}.word-tabs{position:absolute;right:-23px;top:1px;display:flex;flex-direction:column;gap:4px}.word-tabs i{font-style:normal;font-size:7px;background:#c4ceac;color:#56694b;padding:5px 5px;border-radius:0 3px 3px 0}.word-tabs i+ i{background:#ddc8a1;color:#826b43}.notebook-choice.cover-1:hover{transform:rotate(0) translateY(-4px)}
.notebook-choice.cover-2{background:linear-gradient(90deg,#e9efdb 0 33%,#dbe6cd 33% 66%,#eef1df 66%);border-color:#c4cfb1;color:#4a6650;border-radius:2px;box-shadow:inset 0 0 0 5px #f4f4e78c,2px 4px 0 #d6ddc7;padding-left:17px}.notebook-choice.cover-2:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 32.5%,#7f957329 33%,transparent 34%,transparent 65.5%,#7f957329 66%,transparent 67%)}.art-2 svg{height:70px;width:100%;overflow:visible}.art-2 path{stroke:#8aa87b;stroke-width:2;fill:none}.art-2 circle{fill:#bfd0aa;stroke:#799666;stroke-width:2}.art-2 circle:nth-of-type(1){fill:#73965f;stroke:#5d814a}
.notebook-choice.cover-3{background:#496455;color:#fcf6df;border-color:#3e594a;box-shadow:inset 7px 0 #304e40,2px 4px 0 #d3d7c3,4px 7px 0 #e7e6d7;padding-left:23px}.notebook-choice.cover-3 .notebook-number,.notebook-choice.cover-3 small:not(.notebook-number){color:#cfddc4;opacity:.9}.lecture-screen{display:flex;align-items:center;justify-content:center;width:100%;height:62px;border:1px solid #91a68a;border-radius:3px;background:linear-gradient(145deg,#879e70,#b5c49a);box-shadow:inset 0 0 0 4px #3c5947}.lecture-screen i{font-size:21px;font-style:normal;color:#f9f1ce;text-shadow:0 2px 8px #314f4655}.film-perforations{position:absolute;top:0;bottom:3px;left:1px;width:5px;background:repeating-linear-gradient(transparent 0 5px,#deebcb99 5px 9px,transparent 9px 15px)}
.file-choice{flex-wrap:wrap;gap:7px 12px;padding-top:17px}.file-choice>span:nth-child(2){flex:1;min-width:0}.folder-stamp{font:700 10px/1.1 monospace;letter-spacing:1px;flex-basis:100%;color:#92815e;margin-bottom:6px}.file-choice.folder-0{background:#f5ebd5;border-color:#d5c09a;box-shadow:inset 6px 0 #aa8a55}.file-choice.folder-0:before{background:#f5ebd5;border-color:#d5c09a}.file-choice.folder-1{background:#e4ecec;border-color:#bfd0d0;box-shadow:inset 6px 0 #8caaa6}.file-choice.folder-1:before{background:#e4ecec;border-color:#bfd0d0}.folder-1 .folder-stamp{color:#638782}.file-choice.folder-2{background:#e8eddf;box-shadow:inset 6px 0 #9ead82}.folder-2 .folder-stamp{color:#78885e}
@media(max-width:700px){.notebook-choices{gap:21px 15px}.notebook-choice{min-height:218px;padding-right:12px}.notebook-choice strong{font-size:17px}.notebook-choice small:not(.notebook-number){font-size:9px}.notebook-number{font-size:6px;letter-spacing:.3px}.word-tabs{right:-20px}.word-tabs i{font-size:6px;padding:4px}.research-chart{gap:6px;padding:0 6px}.research-chart i{width:14px}.dock button{min-width:92px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.object-label.object-hovered{transform:translate(-50%,-100%)}.notebook-choice:hover,.notebook-choice.cover-1:hover{transform:none}}

/* Use the site's original Algae Doctor mark and typography. */
body{font-family:'Pretendard Variable','Pretendard','Malgun Gothic','Apple SD Gothic Neo',sans-serif}
.room-header .room-brand{position:relative;display:flex;gap:11px;align-items:center;padding:10px 19px 10px 14px;min-width:155px;background:#f4e8a8;color:#345440;box-shadow:1px 3px 0 #d9d4ab50;transform:rotate(-1.2deg)}
.room-brand:before{content:'';position:absolute;left:35%;top:-4px;width:48px;height:9px;background:#d3cda182;transform:rotate(2deg)}
.room-brand-logo{display:block;width:32px;height:43px;object-fit:contain;flex-shrink:0}
.room-header .room-wordmark{font-size:21px;font-weight:800;letter-spacing:-.8px;line-height:1.15}.room-header .room-wordmark small{margin-top:7px;font-family:inherit;font-size:8px;font-weight:550;letter-spacing:1.2px;line-height:1.2}
.room-intro{max-width:270px}.room-intro>p{font-family:inherit;font-size:10px;letter-spacing:.3px;margin-bottom:10px;color:#718062;opacity:1}.room-intro h1{font-family:inherit;font-weight:750;font-size:31px;line-height:1.28;letter-spacing:-1.1px;margin:0 0 13px}.room-intro h1 br{display:block}.room-intro>span{display:block;max-width:245px;font-size:10px;line-height:1.8;word-break:keep-all;opacity:.8}
.night .room-brand{background:#e3d597;color:#304b3b}.night .room-intro>p{color:#bbc8a1}
@media(min-width:1500px){.room-intro h1{font-size:37px}}
@media(min-width:801px) and (max-width:1200px){.room-intro{top:116px;max-width:235px}.room-intro h1{font-size:27px}.room-intro>p{font-size:9px}.room-intro>span{max-width:215px;font-size:10px}}
@media(max-width:800px){.room-header .room-brand{padding:7px 13px 7px 10px;gap:8px;min-width:135px}.room-brand-logo{width:27px;height:36px}.room-header .room-wordmark{font-size:19px}.room-header .room-wordmark small{font-size:6px;letter-spacing:1px;margin-top:6px}.room-intro h1{font-size:28px}.room-intro>p{font-size:9px}.room-intro>span{font-size:10px;max-width:220px}}
@media(max-width:480px){.room-header .room-brand{padding:6px 10px 6px 8px;min-width:122px;gap:7px}.room-brand-logo{width:25px;height:33px}.room-header .room-wordmark{font-size:17px}.room-header .room-wordmark small{font-size:6px;letter-spacing:.7px}.room-intro h1{font-size:26px}.room-intro>p{font-size:8px}.room-intro>span{max-width:210px;font-size:9px}}

/* A bound pocket notebook wraps every object panel. */
#panel.notebook-modal{width:470px;max-height:85dvh;padding:0;overflow:hidden;background:#f8f3df;color:#3e503a;border:1px solid #a9b493;border-left:10px solid #73855d;border-radius:5px 16px 16px 5px;box-shadow:3px 3px 0 #f0ead3,6px 6px 0 #c2c8ad,9px 9px 0 #e6e4ce,0 24px 95px #20392755}
#panel.notebook-modal[data-kind=notebook]{width:580px}
.notebook-page{position:relative;display:flex;flex-direction:column;max-height:calc(85dvh - 2px);min-height:260px;background-color:#fcf8e8;background-image:radial-gradient(#a6986514 .6px,transparent .8px),repeating-linear-gradient(transparent 0 28px,#9ba98b24 28px 29px);background-size:7px 7px,100% 29px}
.notebook-page:before{content:'';position:absolute;z-index:0;left:36px;top:0;bottom:0;width:1px;background:#d3a38b66;pointer-events:none}
.notebook-binding{position:absolute;z-index:3;top:34px;bottom:35px;left:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.notebook-binding i{display:block;position:relative;width:25px;height:10px;border:1px solid #9ca397;border-radius:8px;background:linear-gradient(#9da393,#edf0df 35%,#c2c8b4 60%,#8d967f);box-shadow:0 2px 2px #686f4c2e;transform:rotate(-8deg)}
.notebook-binding i:after{content:'';position:absolute;right:-4px;top:-3px;width:13px;height:14px;border:1px solid #c7c5ab;border-radius:50%;background:#c1ba8e3d;z-index:-1}
#panel .panel-top{position:relative;z-index:2;flex:none;min-height:64px;padding:16px 22px 12px 50px;background:#faf6e7e8;border-bottom:1px dashed #bfc6aa;gap:16px}
#panel .panel-top>span{font-size:8px;letter-spacing:1.35px;line-height:1.7;color:#7b8969}
#panel #close-panel{display:grid;place-items:center;min-width:34px;min-height:34px;padding:0;border:1px solid #c7cbb4;border-radius:50%;background:#f1edda;color:#778367;font-size:24px;line-height:1;flex-shrink:0}
#panel #close-panel:hover{background:#e6e9d3;color:#43583b}
.notebook-page-scroll{position:relative;z-index:1;overflow:auto;min-height:0;flex:1;padding:20px 25px 22px 50px;scrollbar-width:thin;scrollbar-color:#aab794 #f1eddc;overscroll-behavior:contain}
.notebook-owner{font-size:10px;letter-spacing:.5px;color:#909b7c;margin:0 0 12px}
#panel h2{font-family:inherit;font-size:25px;font-weight:700;line-height:1.45;letter-spacing:-.8px;margin:0 0 13px;word-break:keep-all}
#panel #panel-description{color:#7e886f;line-height:1.9;margin-bottom:22px}
.notebook-page-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;padding-top:15px;border-top:1px dashed #b8c4a7;color:#97a080;font-size:9px}
.notebook-page-footer span:last-child{font-family:inherit;font-size:11px;font-weight:650;letter-spacing:-.3px;transform:rotate(-4deg);border-bottom:1px solid #a9b794;padding:0 4px 3px}
#panel[open] .notebook-page{animation:unfold-notebook .2s ease-out}
@keyframes unfold-notebook{from{opacity:.45;transform:translateX(8px)}to{opacity:1;transform:none}}
@media(max-width:700px){#panel.notebook-modal{max-width:calc(100vw - 30px);max-height:84dvh;border-left-width:8px}.notebook-page{max-height:calc(84dvh - 2px)}.notebook-page:before{left:27px}.notebook-binding{top:32px;bottom:32px}.notebook-binding i{width:19px;height:8px}.notebook-binding i:after{width:10px;height:12px;right:-3px}#panel .panel-top{min-height:59px;padding:11px 15px 10px 38px;gap:10px}#panel .panel-top>span{font-size:7px;letter-spacing:1px}#panel #close-panel{min-width:34px;min-height:34px}.notebook-page-scroll{padding:18px 17px 20px 38px}#panel h2{font-size:23px}#panel #panel-description{font-size:12px}.notebook-owner{font-size:9px;margin-bottom:10px}.notebook-page-footer{font-size:8px;gap:8px}.notebook-choices{column-gap:13px}.notebook-choice{padding-left:18px}.notebook-choice strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){#panel[open] .notebook-page{animation:none}}

/* A top-bound flip notebook, with a simple two-book collection. */
#panel.notebook-modal{border-left:1px solid #a9b493;border-top:12px solid #73855d;border-radius:5px 5px 15px 15px}
#panel.notebook-modal[data-kind=notebook]{width:540px}
.notebook-page{max-height:calc(85dvh - 13px)}
.notebook-page:before{left:21px}
.notebook-binding{top:0;bottom:auto;left:31px;right:31px;height:28px;flex-direction:row;align-items:flex-start}
.notebook-binding i{width:10px;height:26px;background:linear-gradient(90deg,#9da393,#edf0df 35%,#c2c8b4 60%,#8d967f);transform:rotate(7deg)}
.notebook-binding i:after{top:auto;right:-3px;bottom:-4px;width:14px;height:12px}
#panel .panel-top{min-height:86px;padding:34px 23px 12px 26px}
.notebook-page-scroll{padding:20px 25px 22px 26px}
#panel[data-kind=notebook] .notebook-choice{min-height:235px}
@media(max-width:700px){#panel.notebook-modal{border-left-width:1px;border-top-width:11px}.notebook-page{max-height:calc(84dvh - 12px)}.notebook-page:before{left:16px}.notebook-binding{top:0;left:23px;right:23px;height:25px}.notebook-binding i{width:9px;height:23px}.notebook-binding i:after{width:12px;height:10px;right:-2px;bottom:-3px}#panel .panel-top{min-height:80px;padding:30px 17px 11px 21px}.notebook-page-scroll{padding:18px 17px 20px 21px}#panel[data-kind=notebook] .notebook-choice{min-height:225px}}

.carbon-calculator-card{padding:22px 19px;border:1px solid #adc29b;border-radius:6px;background:#e1ebd2;box-shadow:2px 3px 0 #cad3b87a;margin:8px 0 22px;min-height:98px}.carbon-calculator-card strong{font-size:17px;color:#3b5937}.carbon-calculator-card small{line-height:1.8;color:#75886a}.carbon-calculator-card:hover{background:#d6e5c3}.simple-calculator{border-top:1px dashed #bcc7ac;margin-top:20px}.simple-calculator summary{cursor:pointer;font-size:13px;font-weight:650;padding:19px 3px;color:#6f7f61;list-style-position:inside}.simple-calculator summary:focus-visible{outline:3px solid #b8823f;outline-offset:2px}.simple-calculator-body{padding:0 2px 2px}.simple-calculator .calc-keys{margin-bottom:3px}

.room-actions .guestbook-open{font-size:12px;font-weight:700;white-space:nowrap;background:#f6edc5;border-color:#b6a77666}
#panel[data-kind=guestbook]{width:550px}
.guestbook-form{display:grid;gap:9px;margin-top:23px}
.guestbook-form label{font-size:13px;font-weight:700;color:#4c6242;display:flex;justify-content:space-between;gap:8px}
.guestbook-form label small{font-size:10px;font-weight:400;color:#7d856d}
.guestbook-form input:not([type=hidden]),.guestbook-form textarea{width:100%;min-width:0;padding:12px;border:1px solid #b7bda5;border-radius:4px;background:#fffdf2;color:#354a36;font-size:14px;line-height:1.7}
.guestbook-form textarea{resize:vertical;min-height:120px;margin-bottom:0}
.guestbook-form label:not(:first-child){margin-top:8px}
.guestbook-trap{display:none!important}
.guestbook-privacy{font-size:11px;line-height:1.8;color:#78816b;margin:2px 0 5px}
.guestbook-submit{justify-self:start;border:1px solid #536b43;background:#526d44;color:#fffbee;padding:12px 19px;border-radius:5px;font-size:13px;font-weight:700;min-height:44px}
.guestbook-submit:hover{background:#3e5935}
.guestbook-status{padding:14px 16px;background:#e8edd4;border-left:3px solid #879b63;border-radius:3px;font-size:13px;line-height:1.8;color:#47603d}
.guestbook-notes{margin-top:30px;border-top:1px dashed #b7bea1;padding-top:20px}
.guestbook-notes h3{font-size:15px;margin:0 0 15px;color:#526344}
.guestbook-empty{padding:20px 14px;border:1px dashed #c6cbb6;border-radius:4px;font-size:12px;line-height:1.9;color:#858c75;text-align:center}
.guestbook-note{margin:12px 0;padding:17px 18px;background:#f4edce;border:1px solid #dfd4ad;box-shadow:2px 3px 0 #d4c9a244;border-radius:2px 7px 7px 2px;overflow-wrap:anywhere}
.guestbook-note:nth-of-type(even){background:#e9edd8;border-color:#cad4b6}
.guestbook-note>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.guestbook-note strong{font-size:13px;color:#4f6140}.guestbook-note time{font-size:10px;color:#8a8c77;white-space:nowrap}
.guestbook-note p{font-size:13px;line-height:1.9;color:#5b654f;margin:10px 0 0}
@media(max-width:700px){.room-actions .guestbook-open{font-size:10px;padding:8px}.room-header{padding-left:18px;padding-right:18px}.room-actions{gap:5px}.room-actions a{font-size:9px;padding:8px}.guestbook-form input:not([type=hidden]),.guestbook-form textarea{font-size:16px}.guestbook-note{padding:14px}.room-wordmark{font-size:12px}}

/* Names are placed in screen space with a gutter and a leader to their item. */
.object-label{transform:none;font-size:11px;min-height:31px;padding:7px 11px;line-height:1.4;opacity:1}
.object-label.object-hovered{transform:translateY(-2px)}
.object-label:after{display:none}.label-short{display:none}
.label-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.label-leaders line{stroke:#7c9167;stroke-width:1.2;opacity:.65;vector-effect:non-scaling-stroke}
.night .label-leaders line{stroke:#c8d7a6}.labels-off .label-leaders{visibility:hidden}
.room-item-index{display:none}
.room-compact .dock,.room-compact .concept-note,.room-compact .welcome-note{display:none}
.room-compact #scene{inset:190px 0 210px}
.room-compact .scene-tools{bottom:165px;right:14px;gap:5px}
.room-compact .scene-tools>span{font-size:9px}.room-compact .scene-tools button{min-height:36px}
.room-compact .object-label{width:auto;height:32px;min-height:32px;padding:5px 9px;display:grid;place-items:center;background:#fffdf1;box-shadow:0 2px 6px #344d332b;border:1px solid #8ea578;color:#405a35;font-size:12px;font-weight:650;border-radius:16px}
.room-compact .object-label:before,.room-compact .object-label .label-text{display:none}
.room-compact .object-label .label-short{display:block}
.room-compact .label-leaders line{opacity:.5;stroke-width:1}
.room-compact .room-item-index{display:flex;flex-direction:column;position:absolute;z-index:5;left:10px;right:10px;bottom:10px;height:145px;border:1px solid #c5cfb2;background:#fafbeef5;border-radius:13px;box-shadow:0 5px 22px #354b2520;overflow:hidden;backdrop-filter:blur(12px)}
.room-item-index>p{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:10px 12px 7px;font-size:12px;font-weight:700;color:#4f6442;flex:none}
.room-item-index>p>span{font-size:9px;color:#7d896d;font-weight:400}
#room-item-list{display:grid;grid-template-columns:none;grid-template-rows:repeat(2,44px);grid-auto-flow:column;grid-auto-columns:minmax(76px,1fr);align-content:start;gap:5px;padding:3px 8px 9px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a5b68a transparent;min-height:0}
#room-item-list button{display:flex;justify-content:center;align-items:center;min-width:0;min-height:44px;text-align:center;background:#edf1df;border:1px solid #dce4cc;border-radius:7px;padding:8px;color:#465c3c;font-size:12px;line-height:1.5;white-space:nowrap}
#room-item-list .label-short{display:block}
#room-item-list button.object-hovered,#room-item-list button:focus-visible{background:#fff0bd;border-color:#c2a65b}
.night .room-item-index{background:#2e453eed;border-color:#8ea57b55}.night .room-item-index>p{color:#d9e4c5}.night .room-item-index>p>span{color:#a6b59b}.night #room-item-list button{background:#3c5345;color:#e3e9d4;border-color:#6c855155}.night .object-label{background:#405d43;color:#f4f2d9;border-color:#b2c991}
.poster .room-item-index{display:none!important}
@media(max-height:720px){.room-compact #scene{inset:137px 0 210px}.room-compact .room-intro{top:80px}.room-compact .room-intro h1{font-size:23px;line-height:1.25;margin-bottom:5px}.room-compact .room-intro h1 br{display:none}.room-compact .room-intro>p{display:none}.room-compact .room-intro>span{font-size:9px}}
.room-compact.room-landscape{--item-index-width:clamp(180px,28vw,240px)}
.room-compact.room-landscape .room-item-index{top:85px;bottom:12px;left:auto;right:12px;width:var(--item-index-width);height:auto}
.room-compact.room-landscape .room-item-index>p{display:block}
.room-compact.room-landscape .room-item-index>p>span{display:block;margin-top:4px}
.room-compact.room-landscape #room-item-list{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr 1fr;grid-template-rows:none;overflow-x:hidden;overflow-y:auto}
.room-compact.room-landscape #scene{inset:95px calc(var(--item-index-width) + 28px) 14px 0}
.room-compact.room-landscape .scene-tools{right:calc(var(--item-index-width) + 40px);bottom:14px}
.room-compact.room-landscape .scene-tools>span{display:none}
.room-compact.room-landscape .room-intro{top:85px;left:24px}
.room-compact.room-landscape .room-intro h1{font-size:22px;line-height:1.25}
.room-compact.room-landscape .room-intro>span{display:none}
@media(prefers-reduced-motion:reduce){.object-label.object-hovered{transform:none}}
.room-home-short{display:none}.room-compact .room-home-long{display:none}.room-compact .room-home-short{display:inline}.room-compact .room-actions a{white-space:nowrap;font-size:10px;padding:8px}

/* Auto labels keep the room clear; keyboard focus reveals the same item as hover. */
.labels-auto .object-label{opacity:0;pointer-events:none}
.labels-auto .object-label.object-hovered,.labels-auto .object-label:focus-visible{opacity:1;pointer-events:auto}
.labels-auto .label-leaders line{opacity:0}
.labels-auto .label-leaders line.is-active{opacity:.65}

/* 1.8.0 name tag: the first click on an object shows its tag; the button opens the notebook. */
#room-labels .object-tag{position:absolute;left:0;top:0;z-index:6;width:262px;max-width:calc(100% - 20px);box-sizing:border-box;pointer-events:auto;padding:13px 16px 15px;background:#fffdf1;color:#22302a;border:1px solid #c9b98a;border-radius:6px 12px 12px 12px;box-shadow:0 2px 0 #e9dfbf,0 14px 34px #344d3338;font-family:inherit;text-align:left}
#room-labels .object-tag[hidden]{display:none}
#room-labels .object-tag:before{content:'';position:absolute;left:14px;top:15px;width:8px;height:8px;border-radius:50%;background:#e6dfc6;box-shadow:inset 0 1px 2px #5a4a2a40}
#room-labels .object-tag:after{content:'';position:absolute;left:var(--tip-x,50%);top:100%;width:12px;height:12px;background:inherit;border-right:1px solid #c9b98a;border-bottom:1px solid #c9b98a;transform:translate(-50%,-6px) rotate(45deg)}
#room-labels .object-tag.is-below:after{top:auto;bottom:100%;transform:translate(-50%,6px) rotate(225deg)}
.object-tag-kicker{display:block;padding:0 30px 0 18px;font-size:12px;font-weight:700;color:#8a5a3c;line-height:1.5;margin-bottom:3px}
.object-tag-title{display:block;font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.35;margin:0 0 6px}
.object-tag-desc{margin:0 0 12px;font-size:13.5px;line-height:1.6;color:#4d5b52;word-break:keep-all}
.object-tag-open{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border:0;border-radius:8px;background:#325d43;color:#fffdf4;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.object-tag-open:hover{background:#284b36}
.object-tag-close{position:absolute;top:5px;right:5px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#6f7a66;font:inherit;font-size:20px;line-height:1;cursor:pointer}
.object-tag-close:hover{background:#efe9d3}
.object-tag button:focus-visible{outline:3px solid #658557;outline-offset:2px}
.night #room-labels .object-tag{background:#2f4639;color:#f1f0dc;border-color:#8ea578;box-shadow:0 14px 34px #0b140f66}
.night #room-labels .object-tag:after{border-color:#8ea578}
.night .object-tag-kicker{color:#e2c08d}.night .object-tag-desc{color:#d5dcc6}.night .object-tag-close{color:#d5dcc6}.night .object-tag-close:hover{background:#3f5a49}
.night .object-tag-open{background:#e9d8a0;color:#24362a}.night .object-tag-open:hover{background:#f3e4b2}
@media(prefers-reduced-motion:no-preference){#room-labels .object-tag:not([hidden]){animation:adwr-tag-in .18s ease-out}}
@keyframes adwr-tag-in{from{opacity:0;translate:0 4px}}
.room-compact #room-labels .object-tag{width:248px;padding:12px 14px 14px}

/* 1.8.0 notebook pages: each page has a short description and a clear button. */
#panel .panel-pages-title{margin:20px 0 2px;font-size:12.5px;font-weight:700;color:#8a5a3c}
#panel .panel-link-desc{display:block;margin-top:6px;font-size:13px;line-height:1.6;color:#55624f;word-break:keep-all;opacity:1}
#panel .panel-link:not(.notebook-choice):not(.file-choice):not(.notice-card):not(.game-card){align-items:center;gap:14px;padding:15px 0}
#panel .panel-link small{font-size:11.5px}
#panel .panel-link .panel-link-go{flex:none;padding:8px 12px;border-radius:8px;background:#325d43;color:#fffdf4;font-size:12.5px;font-weight:700;white-space:nowrap;align-self:center}
#panel .panel-link:hover .panel-link-go{background:#284b36}
#panel .file-choice .panel-link-go{align-self:flex-start}
#panel .notebook-choice .panel-link-go{position:static;align-self:flex-start;margin-top:14px;padding:8px 12px;border-radius:8px;background:#325d43;color:#fffdf4;font-size:12.5px;font-weight:700;white-space:nowrap}
#panel .notebook-choice:hover .panel-link-go{background:#284b36}
#panel .notebook-choice .panel-link-desc{color:inherit;opacity:.85}
@media(max-width:480px){#panel .panel-link:not(.notebook-choice){flex-wrap:wrap}#panel .panel-link:not(.notebook-choice)>span:first-child{flex:1 1 100%}#panel .panel-link:not(.notebook-choice) .panel-link-go{margin-left:auto}}
#panel #panel-description{font-size:15px;line-height:1.75;color:#4d5b52;margin-bottom:6px;word-break:keep-all}
#panel .notebook-owner{font-size:12px;color:#8a5a3c;margin-bottom:8px}
#panel #panel-kicker{font-size:10.5px;letter-spacing:.12em}
