/* Three user-requested lower-room surfaces. Hero, articles, journal and footer are untouched. */
.room-section { position: relative; isolation: isolate; max-width: none; margin-inline: 0; padding-inline: max(6%,calc((100% - 1160px)/2)); background-color: #0d1d26; background-image: radial-gradient(ellipse at 78% 12%,#bd804029,transparent 53%),linear-gradient(180deg,#08161d70,transparent 25%,transparent 80%,#07131b65),url('../assets/room-wall-grain.png'); background-size: auto,auto,128px 128px; border-block: 1px solid #acb5a51c; }
.room-section > div { position: relative; z-index: 1; min-width: 0; }
.room-section::after { content: ''; position: absolute; z-index: 0; left: -65px; bottom: 35px; width: 200px; height: 370px; background: #020a0e; mask: url('../assets/anubias-leaf.webp') center/contain no-repeat; transform: rotate(-35deg) skewY(-18deg); filter: blur(9px); opacity: .28; pointer-events: none; }
.room-projects { padding-block: 118px 84px; gap: 7%; align-items: center; }
.room-projects .story-index-intro { padding-bottom: 190px; }
.room-projects .story-index-intro h2 { text-shadow: 0 3px 15px #0004; }
.room-projects .story-index-intro p { color: #c3c8bd; }
.room-projects .shelf-study { width: min(350px,100%); height: 180px; left: -10px; opacity: 1; filter: drop-shadow(8px 14px 9px #0007); }
.room-projects .shelf-block { position: absolute; left: 220px; bottom: 65px; width: 38px; height: 43px; filter: drop-shadow(4px 7px 4px #0005); pointer-events: none; }
.room-projects .story-list { gap: 15px; }
.room-projects .editorial-row { min-height: 104px; padding: 21px 19px; border: 1px solid #aa885d70; border-radius: 13px; background: linear-gradient(135deg,#29362e,#13272b 72%); box-shadow: inset 0 1px #f9d89b0d,4px 10px 19px #020a0e55; transition: transform .22s var(--ease),background-color .22s,border-color .22s,box-shadow .22s; }
.room-projects .editorial-row > span:first-child { background: #e5d1a30c; border: 1px solid #d1c09e13; box-shadow: inset 0 1px 5px #fff1; }
.room-projects .row-title { color: #eee7da; }
.room-projects .row-proof { color: #c5cabb; }
.room-projects .editorial-row small { color: #bcc6bc; }
.room-projects .editorial-row:hover { transform: translateY(-2px); padding-inline: 19px; border-color: #c3a16b; box-shadow: inset 0 1px #f9d89b18,5px 14px 23px #020a0e70; }
.room-projects .editorial-row:focus-visible { outline-color: #efbb83; outline-offset: 4px; }
/* A real HTML terminal inside a purely decorative CSS monitor shell. */
.room-terminal { padding-block: 98px 112px; grid-template-columns: .75fr 1.25fr; gap: 6%; background-image: radial-gradient(ellipse at 74% 26%,#c28e492c,transparent 59%),linear-gradient(180deg,#08161d70,transparent 26%,transparent 80%,#07131b65),url('../assets/room-wall-grain.png'); }
.room-terminal > div:first-child { padding-bottom: 18px; }
.room-terminal > div:first-child > p { color: #c3c8bd; font-size: 16px; }
.room-terminal .terminal-dock { padding-bottom: 50px; margin-top: 12px; }
.room-terminal .terminal-dock::after { z-index: 0; bottom: 9px; left: -25px; right: -25px; height: 18px; border-top: 2px solid #b08450; border-bottom: 5px solid #3c291f; border-radius: 2px 2px 3px 3px; background: linear-gradient(#875c2c40,#3e211d77),url('../assets/walnut-albedo.webp') center/500px auto; box-shadow: 0 17px 21px #0007; }
.crt-monitor { position: relative; z-index: 2; padding: 25px 36px 34px 23px; border-radius: 41px 48px 34px 35px; background: linear-gradient(115deg,#d6bd8c,#c6a77b 19%,#b9976c 78%,#8c704f); box-shadow: inset 3px 3px 4px #ffe9b777,inset -7px -4px 7px #5f482c88,12px 18px 24px #0006; }
.crt-monitor::before { content: ''; position: absolute; z-index: -1; width: 52%; height: 26px; left: 24%; bottom: -24px; border-radius: 0 0 7px 7px; background: linear-gradient(100deg,#8b704e,#b79a6d 50%,#826645); box-shadow: inset 0 7px 6px #4b352e66,4px 6px 5px #0005; transform: skewX(-12deg); }
.crt-monitor::after { content: ''; position: absolute; right: 12px; top: 56%; width: 12px; height: 47px; border-radius: 2px; background: repeating-linear-gradient(180deg,#3e3825 0 4px,#aa8a62 4px 9px); box-shadow: inset 2px 1px 2px #32251388; }
.crt-bezel { padding: 10px; border-radius: 27px 30px 25px 25px; background: #293022; box-shadow: inset 4px 5px 9px #000b,0 1px 1px #f6dfa266; }
.room-terminal #portfolio-terminal { border: 1px solid #78978139; border-radius: 20px; background: #0a1a17; box-shadow: inset 0 0 20px #6085610d,0 3px 10px #020a0566; }
.room-terminal .terminal-title { background: linear-gradient(90deg,#233b2e,#1b3027); color: #d0d8c1; padding: 12px 15px; font-size: 10px; overflow-wrap: anywhere; }
.room-terminal .terminal-title::before { width: 6px; height: 6px; flex-basis: 6px; margin-right: 21px; box-shadow: 10px 0 #bba06c,20px 0 #6b8a72; }
.room-terminal .terminal-output { height: 205px; padding: 19px 17px; color: #d4dec6; font-size: 13px; }
.room-terminal .terminal-form { padding: 12px 14px; gap: 8px; border-top-color: #78978130; }
.room-terminal .terminal-form input { background: #12271f; border-color: #4d695a; padding-inline: 10px; }
.room-terminal .terminal-form button { background: #253e30; border-color: #68836b; min-width: 64px; padding-inline: 11px; }
.room-terminal .terminal-form button:hover { background: #34513c; }
.room-terminal .terminal-form label { display: inline-flex; align-items: center; gap: 4px; }
.room-terminal .terminal-form label::after { content: ''; width: 5px; height: 12px; background: #c4d0ae; opacity: .65; animation: room-idle-cursor 1.4s steps(1,end) infinite; }
.room-terminal .terminal-form:focus-within label::after { visibility: hidden; animation: none; }
.room-terminal .terminal-suggestions { padding-inline: 17px; flex-wrap: wrap; }
.room-terminal .terminal-suggestions button { font-size: 12px; min-height: 36px; }
.room-terminal .little-terminal .terminal-disclosure { margin: 8px 17px 16px; font-size: 12px; color: #b2bfa9; }
.room-terminal .monitor-cable { position: absolute; z-index: 0; bottom: 27px; left: -14px; width: 90px; height: 61px; border: 3px solid #5c4c2f; border-right: 0; border-top: 0; border-radius: 0 0 0 50px; transform: rotate(-10deg); box-shadow: -1px 2px 2px #0005; pointer-events: none; }
.room-terminal .terminal-block { position: absolute; z-index: 3; bottom: 28px; left: -24px; width: 40px; height: 45px; filter: drop-shadow(5px 5px 4px #0007); pointer-events: none; }
.room-terminal .terminal-notebook { position: absolute; z-index: 3; bottom: 28px; right: -23px; width: 100px; height: 15px; border: solid #725b3d; border-width: 3px 0; border-radius: 3px; background: #c6ba96; box-shadow: 2px 5px 5px #0005; transform: rotate(9deg); pointer-events: none; }
.room-terminal #portfolio-terminal[data-response='a'] { animation: room-screen-response-a .48s ease-out; }
.room-terminal #portfolio-terminal[data-response='b'] { animation: room-screen-response-b .48s ease-out; }
@keyframes room-idle-cursor { 0%,45% { opacity: .65; } 46%,100% { opacity: .08; } }
@keyframes room-screen-response-a { 0%,100% { filter: brightness(1); } 25% { filter: brightness(1.08); } }
@keyframes room-screen-response-b { 0%,100% { filter: brightness(1); } 25% { filter: brightness(1.08); } }

/* Existing real keepsakes: paper curl, photograph edges and faint plant shadows. */
.room-memories { padding-block: 98px 106px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 11%; background-image: radial-gradient(ellipse at 27% 34%,#c18c4430,transparent 54%),linear-gradient(180deg,#08161d70,transparent 25%,transparent 80%,#07131b65),url('../assets/room-wall-grain.png'); }
.room-memories::after { left: 6%; bottom: 15%; width: 270px; height: 440px; transform: rotate(28deg) skewY(15deg); filter: blur(12px); opacity: .23; }
.room-memories .personal-keepsakes { min-height: 510px; }
.room-memories .personal-mark { border-radius: 1px 3px 36px 3px; background: linear-gradient(115deg,#dfbd7b,#d6ad66 80%,#e8c789); box-shadow: inset 0 1px 1px #fce4a9,5px 14px 20px #0007; }
.room-memories .personal-mark::before { background: radial-gradient(circle at 35% 28%,#d69151,#a65a30 65%,#733d28); box-shadow: 2px 5px 4px #3a281a99; }
.room-memories .personal-mark::after { content: ''; position: absolute; width: 42px; height: 42px; right: 0; bottom: 0; border-radius: 0 0 34px 0; background: linear-gradient(135deg,transparent 45%,#efd397 51%,#a37c43 62%,#7c5c32 85%); pointer-events: none; }
.room-memories :is(.minecraft-keepsake,.aquarium-keepsake) { background: #e0d4b9; box-shadow: inset 0 1px #fff8,4px 14px 21px #0008; transition: transform .3s var(--ease),box-shadow .3s; }
.room-memories .minecraft-keepsake { width: 310px; bottom: 6px; left: -6px; transform: rotate(-7deg); }
.room-memories .aquarium-keepsake { width: 210px; bottom: 51px; left: 245px; right: auto; transform: rotate(7deg); }
.room-memories .aquarium-keepsake img { filter: none; }
.room-memories .minecraft-keepsake:hover { transform: translateY(-3px) rotate(-5deg); box-shadow: 5px 18px 25px #0009; }
.room-memories .aquarium-keepsake:hover { transform: translateY(-3px) rotate(5deg); box-shadow: 5px 18px 25px #0009; }
.room-memories > div:last-child p { color: #c3c8bd; }

@media (min-width: 761px) and (max-width: 1150px) {
  .room-projects { grid-template-columns: .85fr 1.15fr; gap: 5%; padding-inline: 5%; }
  .room-projects .editorial-row { grid-template-columns: 36px minmax(0,1fr) 16px; gap: 8px 12px; padding: 18px 14px; }
  .room-projects .editorial-row:hover { padding-inline: 14px; }
  .room-projects .shelf-block { left: 65%; bottom: 65px; }
  .room-terminal { padding-inline: 5%; gap: 5%; grid-template-columns: .7fr 1.3fr; }
  .room-terminal h2 { font-size: 39px; }
  .crt-monitor { padding: 19px 25px 27px 17px; border-radius: 29px 34px 26px 26px; }
  .crt-monitor::after { right: 8px; width: 9px; }
  .room-terminal .terminal-title { gap: 6px; font-size: 10px; }
  .room-memories { padding-inline: 5%; gap: 8%; }
  .room-memories .minecraft-keepsake { width: 270px; left: -5px; bottom: 9px; }
  .room-memories .aquarium-keepsake { width: 175px; left: auto; right: -6px; bottom: 140px; }
  .room-memories .aquarium-keepsake img { height: 130px; }
}
@media (max-width: 760px) {
  .room-section { padding-inline: 25px; }
  .room-section::after { opacity: .12; width: 150px; height: 250px; }
  .room-projects { padding-block: 75px 65px; }
  .room-projects .story-index-intro { padding-bottom: 0; }
  .room-projects :is(.shelf-study,.shelf-block) { display: none; }
  .room-projects .story-list { gap: 12px; }
  .room-projects .editorial-row { grid-template-columns: 34px minmax(0,1fr) 14px; gap: 12px; padding: 18px 12px; min-height: 110px; }
  .room-projects .editorial-row:hover { padding-inline: 12px; }
  .room-terminal { padding-block: 65px 78px; }
  .room-terminal > div:first-child { padding-bottom: 0; }
  .room-terminal .terminal-dock { margin-top: 42px; padding-bottom: 43px; }
  .crt-monitor { padding: 15px 18px 24px 13px; border-radius: 26px 30px 23px 23px; }
  .crt-monitor::after { right: 5px; width: 7px; height: 34px; }
  .crt-monitor::before { height: 20px; bottom: -18px; }
  .crt-bezel { padding: 6px; border-radius: 20px; }
  .room-terminal #portfolio-terminal { border-radius: 15px; }
  .room-terminal .terminal-title { font-size: 10px; padding: 11px 10px; gap: 7px; }
  .room-terminal .terminal-title::before { display: none; }
  .room-terminal .terminal-output { padding: 16px 12px; height: 200px; }
  .room-terminal .terminal-form { padding: 10px; gap: 6px; }
  .room-terminal .terminal-form input { padding-inline: 8px; }
  .room-terminal .terminal-form label::after { display: none; }
  .room-terminal .terminal-form button { min-width: 55px; padding-inline: 8px; }
  .room-terminal .terminal-suggestions { padding-inline: 12px; gap: 14px; }
  .room-terminal .little-terminal .terminal-disclosure { margin-inline: 12px; }
  .room-terminal .terminal-dock::after { left: -10px; right: -10px; bottom: 7px; height: 15px; }
  .room-terminal .terminal-block { width: 27px; height: 31px; left: -7px; bottom: 23px; }
  .room-terminal .terminal-notebook { width: 66px; right: -5px; bottom: 23px; height: 11px; }
  .room-terminal .monitor-cable { display: none; }
  .room-memories { padding-block: 65px 75px; gap: 40px; }
  .room-memories .personal-keepsakes { min-height: 510px; max-width: 340px; }
  .room-memories .minecraft-keepsake { width: min(280px,92%); left: 0; bottom: 0; }
  .room-memories .aquarium-keepsake { width: 165px; bottom: 155px; left: auto; right: -2px; }
  .room-memories .aquarium-keepsake img { height: 112px; }
}
@media (hover: none) {
  .room-projects .editorial-row:hover,.room-memories .minecraft-keepsake:hover,.room-memories .aquarium-keepsake:hover { transform: none; }
}
.motion-paused .room-terminal .terminal-form label::after { animation: none; opacity: .65; }
.motion-paused .room-terminal #portfolio-terminal { animation: none; }
.motion-paused .room-projects .editorial-row:hover { transform: none; }
.motion-paused .room-memories .minecraft-keepsake:hover { transform: rotate(-7deg); }
.motion-paused .room-memories .aquarium-keepsake:hover { transform: rotate(7deg); }
@media (prefers-reduced-motion: reduce) {
  .room-terminal .terminal-form label::after { animation: none; opacity: .65; }
  .room-terminal #portfolio-terminal { animation: none; }
  .room-projects .editorial-row:hover { transform: none; }
  .room-memories .minecraft-keepsake:hover { transform: rotate(-7deg); }
  .room-memories .aquarium-keepsake:hover { transform: rotate(7deg); }
  .room-memories :is(.minecraft-keepsake,.aquarium-keepsake),.room-projects .editorial-row { transition: none; }
}

/* Four prints surround the central pinned note; originals and text remain unchanged. */
.room-memories .personal-keepsakes { width: 100%; max-width: 560px; min-height: 680px; margin-inline: auto; }
.room-memories .personal-mark { position: absolute; top: 193px; left: 50%; width: clamp(190px,48%,260px); min-height: 255px; margin: 0; padding: 30px 27px; transform: translateX(-50%) rotate(-5deg); z-index: 5; }
.room-memories .personal-mark > span { font-size: clamp(34px,2.9vw,43px); }
.room-memories .personal-mark small { margin-top: 24px; }
.room-memories .minecraft-keepsake { margin: 0; padding: 10px 10px 25px; bottom: auto; transform: rotate(var(--photo-tilt,-4deg)); }
.room-memories .minecraft-keepsake img { width: 100%; height: auto; display: block; }
.room-memories .minecraft-sunset { --photo-tilt: -5deg; width: 58%; top: 10px; left: 0; right: auto; z-index: 3; }
.room-memories .minecraft-grove { --photo-tilt: 5deg; width: 54%; top: 470px; left: auto; right: 0; z-index: 4; }
.room-memories .minecraft-night { --photo-tilt: -4deg; width: 54%; top: 463px; left: 0; right: auto; z-index: 3; }
.room-memories .aquarium-keepsake { width: 43%; top: 62px; bottom: auto; right: 0; left: auto; z-index: 4; }
.room-memories .aquarium-keepsake img { height: auto; object-fit: contain; }
.room-memories .minecraft-keepsake:hover { transform: translateY(-3px) rotate(var(--photo-tilt,-4deg)); }
@media (min-width: 761px) and (max-width: 1150px) {
  .room-memories { grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 7%; }
  .room-memories .personal-keepsakes { min-height: 650px; }
  .room-memories .personal-mark { top: 180px; }
  .room-memories .minecraft-grove { top: 455px; }
  .room-memories .minecraft-night { top: 448px; }
}
@media (max-width: 760px) {
  .room-memories .personal-keepsakes { width: 100%; max-width: 540px; min-height: 650px; }
  .room-memories .personal-mark { top: 195px; width: clamp(190px,47%,250px); min-height: 235px; padding: 26px 23px; }
  .room-memories .personal-mark > span { font-size: clamp(34px,6vw,40px); }
  .room-memories .personal-mark small { font-size: 20px; margin-top: 23px; }
  .room-memories .aquarium-keepsake { width: 44%; top: 65px; }
  .room-memories .minecraft-sunset { width: 58%; top: 10px; --photo-tilt: -4deg; }
  .room-memories .minecraft-grove { width: 54%; top: 455px; --photo-tilt: 4deg; }
  .room-memories .minecraft-night { width: 54%; top: 448px; --photo-tilt: -3deg; }
}
@media (hover: none) { .room-memories .minecraft-keepsake:hover { transform: rotate(var(--photo-tilt,-4deg)); } }
.motion-paused .room-memories .minecraft-keepsake:hover { transform: rotate(var(--photo-tilt,-4deg)); }
@media (prefers-reduced-motion: reduce) { .room-memories .minecraft-keepsake:hover { transform: rotate(var(--photo-tilt,-4deg)); } }
